크로스 계정 리포지토리 액세스: AccountA의 관리자를 위한 작업 - AWS CodeCommit

AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기

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

크로스 계정 리포지토리 액세스: AccountA의 관리자를 위한 작업

AccountB의 사용자나 그룹이 AccountA의 리포지토리에 액세스할 수 있도록 허용하려면 AccountA 관리자가 다음과 같이 해야 합니다.

  • AccountA에서 리포지토리에 대한 액세스 권한을 부여하는 정책을 생성합니다.

  • AccountA에서 AccountB의 IAM 사용자 및 그룹이 수임할 수 있는 역할을 생성합니다.

  • 책을 역할에 연결합니다.

다음 단원에는 절차와 예제가 나와 있습니다.

1단계: AccountA에서 리포지토리 액세스를 위한 정책 생성

AccountA에서 AccountB의 사용자에게 AccountA의 리포지토리에 대한 액세스 권한을 부여하는 정책을 생성할 수 있습니다. AccountB 허용할 액세스 수준에 따라 다음 중 하나를 수행합니다.

  • AccountB 사용자가 특정 리포지토리에 액세스는 할 수 있지만 AccoutA의 모든 리포지토리 목록을 보는 것은 허용하지 않도록 정책을 구성합니다.

  • AccountB 사용자가 AccountA의 모든 리포지토리 목록에서 리포지토리를 선택할 수 있도록 추가 액세스를 구성합니다.

리포지토리 액세스를 위한 정책을 생성하려면
  1. AccountA에서 정책을 생성할 권한이 있는 IAM 사용자로 AWS Management Console에 로그인합니다.

  2. IAM에서 https://console.aws.amazon.com/iam/ 콘솔을 엽니다.

  3. 탐색 창에서 Policies를 선택합니다.

  4. 정책 생성을 선택합니다.

  5. JSON 탭을 선택하고 다음 JSON 정책 문서를 JSON 텍스트 상자에 붙여 넣습니다. us-east-2를 리포지토리의 AWS 리전 경우 111122223333로, AccountA의 경우 계정 IDMySharedDemoRepo로, AccountA의 경우 CodeCommit 리포지토리의 이름으로 바꿉니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] } ] }

    이 역할을 수임하는 사용자가 CodeCommit 콘솔 홈 페이지에서 리포지토리 목록을 볼 수 있도록 하려면 다음과 같이 정책에 추가 문을 추가합니다.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "codecommit:BatchGet*", "codecommit:Create*", "codecommit:DeleteBranch", "codecommit:Get*", "codecommit:List*", "codecommit:Describe*", "codecommit:Put*", "codecommit:Post*", "codecommit:Merge*", "codecommit:Test*", "codecommit:Update*", "codecommit:GitPull", "codecommit:GitPush" ], "Resource": [ "arn:aws:codecommit:us-east-2:111122223333:MySharedDemoRepo" ] }, { "Effect": "Allow", "Action": "codecommit:ListRepositories", "Resource": "*" } ] }

    이 액세스 권한은 이 정책을 사용하여 이 역할을 수임하는 사용자가 액세스 권한을 가진 리포지토리를 손쉽게 찾을 수 있도록 해줍니다. 목록에서 리포지토리 이름을 선택하면 공유 리포지토리(Code)의 홈 페이지로 전달됩니다. 사용자는 목록에서 표시되는 다른 리포지토리에 액세스할 수는 없지만, 대시보드 페이지에서 AccountA의 리포지토리를 볼 수 있습니다.

    역할을 수임하는 사용자가 AccountA의 모든 리포지토리 목록을 볼 수 있도록 허용하지 않으려면 첫 번째 정책 예제를 사용하지만 CodeCommit 콘솔에서 공유 리포지토리의 홈 페이지에 대한 직접 링크를 해당 사용자에게 전송해야 합니다.

  6. 정책 검토를 선택합니다. 정책 검사기는 구문 오류를 보고합니다(예를 들어, Amazon Web Services 계정 ID 및 리포지토리 이름을 Amazon Web Services 계정 ID 및 리포지토리 이름으로 교체하는 것을 잊은 경우).

  7. 정책 검토 페이지에서 정책의 이름(예: CrossAccountAccessForMySharedDemoRepo)을 입력합니다. 또한 선택에 따라 이 정책에 대한 설명을 제공할 수 있습니다. 정책 생성을 선택합니다.

2단계: AccountA에서 리포지토리 액세스를 위한 역할 생성

정책을 구성한 후에는 AccountB의 IAM 사용자 및 그룹이 수임할 수 있는 역할을 생성하고 이 역할에 정책을 연결합니다.

리포지토리 액세스를 위한 역할을 생성하려면
  1. IAM 콘솔에서 역할을 선택합니다.

  2. 역할 생성을 선택합니다.

  3. 다른 Amazon Web Services 계정을 선택합니다.

  4. 계정 ID에 AccountB의 Amazon Web Services 계정 ID(예: 888888888888)를 입력합니다. 다음: 권한을 선택합니다.

  5. 권한 정책 연결에서 이전 절차()에서 생성한 정책을 선택합니다CrossAccountAccessForMySharedDemoRepo. 다음: 검토를 선택합니다.

  6. 역할 이름에 역할의 이름(예: MyCrossAccountRepositoryContributorRole)을 입력합니다. 또한 선택에 따라 설명을 입력하여 다른 사용자가 역할의 목적을 이해하도록 도울 수 있습니다.

  7. 역할 생성을 선택합니다.

  8. 방금 생성한 역할을 열고 역할ARN(예: arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole)을 복사합니다. 이를 ARN AccountB 관리자에게 제공해야 합니다.