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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  5. JSON 탭을 선택하고 다음 JSON 정책 문서를 JSON 텍스트 상자에 붙여 넣습니다. Replace us-east-2 리포지토리 AWS 리전 용 를 사용하여 111122223333 AccountA, 및 MySharedDemoRepo AccountA 에서 CodeCommit 리포지토리의 이름: AccountA

    { "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 관리자에게 제공해야 합니다.