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

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

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

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

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

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

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

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

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

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

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

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

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

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

  3. 탐색 창에서 정책을 선택합니다.

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

  5. JSON 탭에서 다음과 같은 JSON 정책 문서를 JSON 텍스트 상자에 붙여 넣습니다. us-east-2를 리포지토리의 이름으로 바꾸고, 111122223333을 계정 A의 계정 ID로, 계정 A의 리포지토리 이름으로 바꾸십시오. AWS 리전 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" ] } ] }

    이 역할을 맡은 사용자가 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 또한 선택에 따라 이 정책에 대한 설명을 제공할 수 있습니다. 정책 생성(Create policy)을 선택합니다.

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)을 복사합니다. AccountB 관리자에게 이 ARN을 제공해야 합니다.