쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

CodePipeline, IAM Access Analyzer 및 AWS CloudFormation 매크로를 사용하여 AWS 계정에서 IAM 정책 및 역할을 자동으로 검증하고 배포 - 권장 가이드

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

CodePipeline, IAM Access Analyzer 및 AWS CloudFormation 매크로를 사용하여 AWS 계정에서 IAM 정책 및 역할을 자동으로 검증하고 배포

작성자: Helton Ribeiro(AWS) 및 Guilherme Simoes(AWS)

요약

참고: AWS CodeCommit은 더 이상 신규 고객에게 제공되지 않습니다. AWS CodeCommit의 기존 고객은 서비스를 정상적으로 계속 사용할 수 있습니다. 자세히 알아보기

이 패턴은 단계를 설명하고 개발 팀이 Amazon Web Services(AWS) 계정에서 AWS Identity and Access Management(IAM) 정책 및 역할을 생성할 수 있도록 배포 파이프라인을 생성하는 코드를 제공합니다. 이 접근 방식은 조직이 운영 팀의 오버헤드를 줄이고 배포 프로세스를 가속화하는 데 도움이 됩니다. 또한 개발자가 기존 거버넌스 및 보안 제어와 호환되는 IAM 역할 및 정책을 만들 수 있습니다.

이 패턴의 접근 방식은 AWS Identity and Access Management Access Analyzer를 사용하여 IAM 역할에 연결하려는 IAM 정책을 검증하고 AWS CloudFormation을 사용하여 IAM 역할을 배포합니다. 하지만 개발 팀은 AWS CloudFormation 템플릿 파일을 직접 편집하는 대신 JSON 형식의 IAM 정책 및 역할을 생성합니다. AWS CloudFormation 매크로는 배포를 시작하기 전에 이러한 JSON 형식의 정책 파일을 AWS CloudFormation IAM 리소스 유형으로 변환합니다.

배포 파이프라인(RolesPipeline)에는 소스, 검증 및 배포 스테이지가 있습니다. 소스 단계에서 개발 팀은 IAM 역할 및 정책 정의가 포함된 JSON 파일을 AWS CodeCommit 리포지토리로 푸시합니다. 그런 다음 AWS CodeBuild는 스크립트를 실행하여 해당 파일을 검증하고 Amazon Simple Storage Service(S3) 버킷으로 복사합니다. 개발 팀은 별도의 S3 버킷에 저장된 AWS CloudFormation 템플릿 파일에 직접 액세스할 수 없으므로 JSON 파일 생성 및 검증 프로세스를 따라야 합니다.

마지막으로, 배포 단계에서 AWS CodeDeploy는 AWS CloudFormation 스택을 사용하여 계정의 IAM 정책 및 역할을 업데이트하거나 삭제합니다.

중요

이 패턴의 워크플로는 개념 증명(POC)이므로 테스트 환경에서만 사용하는 것이 좋습니다. 프로덕션 환경에서 이 패턴의 접근 방식을 사용하려면 IAM 설명서에서 IAM의 보안 모범 사례를 참조하고 IAM 역할 및 AWS 서비스에 필요한 사항을 변경하십시오.

사전 조건 및 제한 사항

사전 조건 

  • 활성 상태의 AWS 계정.

  • RolesPipeline 파이프라인의 새 S3 버킷 또는 기존 S3 버킷. 사용 중인 액세스 보안 인증에 이 버킷에 객체를 업로드할 권한이 있는지 확인하십시오.

  • AWS Command Line Interface(AWS CLI), 설치 및 구성됨. 이에 관한 자세한 내용은 AWS CLI 설명서의 AWS CLI 설치, 업데이트 및 제거를 참조하십시오. 

  • AWS Serverless Application Model(AWS SAM) CLI, 설치 및 구성됨. 이에 관한 자세한 내용은 AWS SAM 설명서의 AWS SAM CLI 설치를 참조하십시오. 

  • Python 3 로컬 머신에 설치. 자세한 내용은 Python 설명서를 참조하십시오.

  • Git 클라이언트, 설치 및 구성됨.

  • GitHub IAM roles pipeline 리포지토리 로컬 머신에 복제. 

  • 기존 JSON 형식의 IAM 정책 및 역할. 자세한 내용은 GitHub IAM roles pipeline 리포지토리에서 README를 참조하십시오.

  • 개발자 팀은 이 솔루션의 AWS CodePipeline, CodeBuild 및 CodeDeploy 리소스를 편집할 권한이 없어야 합니다.

제한 사항

  • 이 패턴의 워크플로는 개념 증명(POC)이므로 테스트 환경에서만 사용하는 것이 좋습니다. 프로덕션 환경에서 이 패턴의 접근 방식을 사용하려면 IAM 설명서에서 IAM의 보안 모범 사례를 참조하고 IAM 역할 및 AWS 서비스에 필요한 사항을 변경하십시오.

아키텍처

다음 다이어그램은 CodePipeline, IAM Access Analyzer 및 AWS CloudFormation 매크로를 사용하여 계정에서 IAM 역할 및 정책을 자동으로 검증하고 배포하는 방법을 보여줍니다.

AWS 계정에서 IAM 정책 및 역할을 검증하고 배포하는 단계입니다.

이 다이어그램은 다음 워크플로를 보여줍니다.

  1. 개발자는 IAM 정책 및 역할에 대한 정의가 포함된 JSON 파일을 작성합니다. 개발자가 CodeCommit 리포지토리로 코드를 푸시하면 CodePipeline이 RolesPipeline 파이프라인을 시작합니다.

  2. CodeBuild는 IAM Access Analyzer를 사용하여 JSON 파일을 검증합니다. 보안 또는 오류 관련 발견이 발견되면 배포 프로세스가 중지됩니다.

  3. 보안 또는 오류 관련 발견이 없는 경우 JSON 파일이 RolesBucket S3 버킷으로 전송됩니다.

  4. 그러면 AWS Lambda 함수로 구현된 AWS CloudFormation 매크로가 버킷에서 JSON 파일을 읽고 이를 AWS CloudFormation IAM 리소스 RolesBucket 유형으로 변환합니다.

  5. 사전 정의된 AWS CloudFormation 스택은 계정에서 IAM 정책 및 역할을 설치, 업데이트 또는 삭제합니다. 

자동화 및 규모 조정

이 패턴을 자동으로 배포하는 AWS CloudFormation 템플릿은 GitHub IAM 역할 파이프라인 리포지토리에 제공됩니다.

도구

  • AWS Command Line Interface(AWS CLI)는 명령줄 쉘에서 명령을 사용하여 AWS 서비스와 상호 작용할 수 있는 오픈 소스 도구입니다.

  • AWS Identity and Access Management(IAM)는 누구에게 인증 및 사용 권한이 있는지 제어하여 AWS 리소스에 대한 액세스를 안전하게 관리할 수 있도록 도와줍니다.

  • IAM Access Analyzer를 사용하면 외부 엔터티와 공유되는 조직 및 계정 내 리소스(예: S3 버킷 또는 IAM 역할)를 식별할 수 있습니다. 이를 통해 리소스 및 데이터에 대한 의도치 않은 액세스를 식별할 수 있습니다.

  • AWS Serverless Application Model(AWS SAM)은 AWS 클라우드에서 서버리스 애플리케이션을 빌드하는 데 사용할 수 있는 오픈 소스 프레임워크입니다.

code

이 패턴의 소스 코드와 템플릿은 GitHub IAM roles pipeline 리포지토리에서 제공됩니다.

에픽

작업설명필요한 기술

샘플 리포지토리를 복제합니다.

GitHub IAM 역할 파이프라인 리포지토리를 로컬 머신에 복제합니다.

앱 개발자, 일반 AWS

리포지토리 복제

작업설명필요한 기술

샘플 리포지토리를 복제합니다.

GitHub IAM 역할 파이프라인 리포지토리를 로컬 머신에 복제합니다.

앱 개발자, 일반 AWS
작업설명필요한 기술

파이프라인을 배포합니다.

  1. 복제된 리포지토리가 들어 있는 디렉터리로 이동합니다.

  2. 중요

    make deploy bucket=<bucket_name> 명령을 실행합니다. : <bucket_name>를 기존 S3 버킷의 버킷 이름으로 바꿔야 합니다.

  3. aws codepipeline get-pipeline –name RolesPipeline 명령을 실행하여 배포가 성공했는지 확인합니다.

앱 개발자, 일반 AWS

파이프라인의 리포지토리를 복제합니다.

  1. RolesPipeline AWS CloudFormation 스택은 roles-pipeline-repo CodeCommit 리포지토리를 생성합니다.

  2. AWS Management Console에 로그인하고 AWS CodeCommit 콘솔을 연 다음 CodeCommit 리포지토리의 URL을 복사하여 로컬 머신에 복제합니다. 이에 대한 자세한 내용은 AWS CodeCommit 설명서의 AWS CodeCommit 리포지토리에 연결을 참조하십시오.

앱 개발자, 일반 AWS

RolesPipeline 파이프라인 배포

작업설명필요한 기술

파이프라인을 배포합니다.

  1. 복제된 리포지토리가 들어 있는 디렉터리로 이동합니다.

  2. 중요

    make deploy bucket=<bucket_name> 명령을 실행합니다. : <bucket_name>를 기존 S3 버킷의 버킷 이름으로 바꿔야 합니다.

  3. aws codepipeline get-pipeline –name RolesPipeline 명령을 실행하여 배포가 성공했는지 확인합니다.

앱 개발자, 일반 AWS

파이프라인의 리포지토리를 복제합니다.

  1. RolesPipeline AWS CloudFormation 스택은 roles-pipeline-repo CodeCommit 리포지토리를 생성합니다.

  2. AWS Management Console에 로그인하고 AWS CodeCommit 콘솔을 연 다음 CodeCommit 리포지토리의 URL을 복사하여 로컬 머신에 복제합니다. 이에 대한 자세한 내용은 AWS CodeCommit 설명서의 AWS CodeCommit 리포지토리에 연결을 참조하십시오.

앱 개발자, 일반 AWS
작업설명필요한 기술

유효한 IAM 정책 및 역할로 RolesPipeline 파이프라인을 테스트합니다.

  1. IAM 정책 및 역할에 대한 JSON 파일을 생성합니다. GitHub IAM roles pipeline 리포지토리의 role-example 디렉터리에 있는 샘플을 사용할 수 있습니다.

  2. 중요

    필요한 구성으로 IAM 정책 및 역할을 정의합니다. : GitHub IAM roles pipeline리포지토리의 ReadMe 파일에 설명된 형식을 따라야 합니다.

  3. 수정 내용을 roles-pipeline-repo CodeCommit 리포지토리로 푸시합니다.

  4. RolesPipeline 파이프라인 구현을 확인합니다.

  5. IAM 정책 및 역할이 계정에 올바르게 배포되었는지 확인하십시오.

  6. IAM 정책 또는 역할과 관련된 권한 경계가 있는지 확인하십시오. 자세한 내용은 IAM 사용 설명서의 IAM 엔터티에 대한 권한 경계를 참조하십시오.

앱 개발자, 일반 AWS

유효하지 않은 IAM 정책 및 역할로 RolesPipeline 파이프라인을 테스트합니다.

  1. roles-pipeline-repo CodeCommit 리포지토리를 수정하고 잘못된 IAM 역할 또는 정책을 포함하십시오. 예를 들어 존재하지 않는 작업이나 잘못된 IAM 정책 버전을 사용할 수 있습니다.

  2. 파이프라인 구현을 확인합니다. IAM Access Analyzer는 잘못된 IAM 정책 또는 역할을 탐지할 경우 검증 스테이지에서 파이프라인을 중지합니다.

앱 개발자, 일반 AWS

RolesPipeline 파이프라인 테스트

작업설명필요한 기술

유효한 IAM 정책 및 역할로 RolesPipeline 파이프라인을 테스트합니다.

  1. IAM 정책 및 역할에 대한 JSON 파일을 생성합니다. GitHub IAM roles pipeline 리포지토리의 role-example 디렉터리에 있는 샘플을 사용할 수 있습니다.

  2. 중요

    필요한 구성으로 IAM 정책 및 역할을 정의합니다. : GitHub IAM roles pipeline리포지토리의 ReadMe 파일에 설명된 형식을 따라야 합니다.

  3. 수정 내용을 roles-pipeline-repo CodeCommit 리포지토리로 푸시합니다.

  4. RolesPipeline 파이프라인 구현을 확인합니다.

  5. IAM 정책 및 역할이 계정에 올바르게 배포되었는지 확인하십시오.

  6. IAM 정책 또는 역할과 관련된 권한 경계가 있는지 확인하십시오. 자세한 내용은 IAM 사용 설명서의 IAM 엔터티에 대한 권한 경계를 참조하십시오.

앱 개발자, 일반 AWS

유효하지 않은 IAM 정책 및 역할로 RolesPipeline 파이프라인을 테스트합니다.

  1. roles-pipeline-repo CodeCommit 리포지토리를 수정하고 잘못된 IAM 역할 또는 정책을 포함하십시오. 예를 들어 존재하지 않는 작업이나 잘못된 IAM 정책 버전을 사용할 수 있습니다.

  2. 파이프라인 구현을 확인합니다. IAM Access Analyzer는 잘못된 IAM 정책 또는 역할을 탐지할 경우 검증 스테이지에서 파이프라인을 중지합니다.

앱 개발자, 일반 AWS
작업설명필요한 기술

정리를 준비하십시오.

S3 버킷을 비운 다음 destroy 명령을 실행합니다.

앱 개발자, 일반 AWS

RolesStack 스택을 삭제합니다.

  1. RolesPipeline 파이프라인은 RolesStack IAM 정책 및 역할을 배포하는 AWS CloudFormation 스택을 생성합니다. RolesPipeline 파이프라인을 삭제하기 전에 이 스택을 삭제해야 합니다.

  2. AWS Management Console에 로그인하고 AWS CloudFormation 콘솔을 연 다음 목록에서 RolesStack 스택을 선택하여 삭제를 선택합니다.

앱 개발자, 일반 AWS

RolesPipeline 스택을 삭제합니다.

RolesPipeline AWS CloudFormation 스택을 삭제하려면 Github IAM roles pipeline 리포지토리의 ReadMe 파일에 있는 지침을 따르십시오.

앱 개발자, 일반 AWS

리소스 정리

작업설명필요한 기술

정리를 준비하십시오.

S3 버킷을 비운 다음 destroy 명령을 실행합니다.

앱 개발자, 일반 AWS

RolesStack 스택을 삭제합니다.

  1. RolesPipeline 파이프라인은 RolesStack IAM 정책 및 역할을 배포하는 AWS CloudFormation 스택을 생성합니다. RolesPipeline 파이프라인을 삭제하기 전에 이 스택을 삭제해야 합니다.

  2. AWS Management Console에 로그인하고 AWS CloudFormation 콘솔을 연 다음 목록에서 RolesStack 스택을 선택하여 삭제를 선택합니다.

앱 개발자, 일반 AWS

RolesPipeline 스택을 삭제합니다.

RolesPipeline AWS CloudFormation 스택을 삭제하려면 Github IAM roles pipeline 리포지토리의 ReadMe 파일에 있는 지침을 따르십시오.

앱 개발자, 일반 AWS

관련 리소스

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.