데보션앱 소개페이지 바로가기
로그인 선택

신고하기

CLOSE
신고사유 (대표 사유 1개)
상세내용 (선택)
0/200
  • 신고한 게시글은 더 이상 보이지 않습니다.
  • 이용약관과 운영정책에 따라 신고사유에 해당하는지 검토 후 조치됩니다.
  • 허위 신고인 경우, 신고자의 서비스 이용이 제한될 수 있으니 유의하시어 신중하게 신고해 주세요.
(이 회원이 작성한 모든 댓글과 커뮤니티 게시물이 보이지 않고, 알림도 오지 않습니다.)

미리보기

커뮤니티

      1,234

      badge 23.06.15

      글 등록

      카테고리를 선택해주세요.

      DEVOTEE를 활성화 시키면
      지금 작성한 커뮤니티 글에 대해 1개의 댓글을 달아줍니다.

      버튼을 누르면 글 수정 시 ChatGPT가 작성한 댓글이 수정됩니다.

      임시저장함에 저장되었습니다. 저장일시 : 2022.5.17 14:29:08

      임시저장함

      제목을 선택하시면 이어서 작성이 가능하며,
      최대 20건까지 저장합니다.
      컨텐츠 유형, 제목, 저장일시, 삭제로 이뤄진 임시저장 목록
      컨텐츠 유형 제목 저장일 삭제

      데보션 블로그 게재 요청

      CLOSE
      • *
      • *

      본인인증

      효율적인 데보션 서비스 이용 및
      고객님의 소중한 개인정보보호를 위해
      본인인증을 진행해주세요. 본인인증 미 진행 시 로그인이 제한됩니다.
      본인인증 실패

      본인인증 로그인에 실패하였습니다.
      회원이 아니시거나 본인인증 등록이
      완료되지 않은 사용자입니다.

      회원정보 연결

      Terraform에서 AWS Multi Account 권한 획득하기 (assume role)

      zero 23.05.24
      2,042 12 0

      Terraform & Assume Role?

      Terraform은 많이 알고 계시는 것처럼, AWS와 같은 다양한 Infrastructure Provider들을 코드로 프로비저닝 하는 대표적인 IaC 도구입니다.

      지난 번 포스팅에서는 boto3에서 assume role을 사용하여 python 코드에서 AWS의 Multi Account에 API 호출하는 방법을 공유 드렸는데요, Terraform에서도 assume role 활용이 가능합니다.

      이번 포스팅에서는 Terraform에서 assume role을 사용하여 AWS의 Multi Account로 리소스를 프로비저닝하고 컨트롤하는 부분을 공유 드리겠습니다.

      .

      .

      1. Terraform Cloud variable 설정 (variable.tf)

      image.png

      -> 저는 편하게 Terraform Cloud를 사용했으나, 일반 terraform을 사용하신다면 variable.tf에 설정하시면 됩니다.

      -> Access Key와 Secret Access Key는 'A' Account의 Credential을 넣어줍니다.

      -> account 변수에는 리소스를 배포할 'B' Account Number을 넣어줍니다. (변수로 설정했기 때문에 'C', 'D' Account를 유동적으로 설정할 수도 있습니다.)

      .

      .

      2. Terraform provider.tf 설정

      (as-is)

      image.png

      (to-be)

      image.png

      -> account 변수는 위 1번에서 입력한 'B' Account가 설정되어 assume_role을 부여 받게 됩니다.

      (해당 'B' Account의 Role은 'A' Account와 Trust Relationship이 맺어져 있어야 합니다. 자세한 내용은 지난번 포스팅 참고해 주시기 바랍니다.)

      .

      .

      3. 테스트

      1. 웹에서 변수값을 입력하고 Terraform API를 호출합니다.

        image.png

        -> 현재는 service와 vpc_cidr 변수만 수정하도록 개발되어 기본값인 'B' Account에만 배포되지만, account 변수도 입력받은 값으로 수정하여 'C', 'D' Account로도 배포할 수 있습니다.

        .

      2. Terraform Cloud가 Assume Role을 통해 'A' Account의 Credential을 가지고, 'B' Account로 프로비저닝을 수행합니다.

        image.png

        .

      3. 'B' Account 내에 입력한 변수 정보로 리소스가 구성되었습니다.

        image.png

      댓글 0

      DEVOTEE를 활성화 시키면
      지금 작성한 댓글에 AI가 댓글을 달아줍니다.

      zero 님의 최신 블로그

      더보기
      동영상 기고하기