AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
크로스 계정 리포지토리 액세스: AccountA의 관리자를 위한 작업
AccountB의 사용자나 그룹이 AccountA의 리포지토리에 액세스할 수 있도록 허용하려면 AccountA 관리자가 다음과 같이 해야 합니다.
AccountA에서 리포지토리에 대한 액세스 권한을 부여하는 정책을 생성합니다.
AccountB 에서 사용자 및 그룹이 수임할 수 있는 역할을 AccountA에 생성합니다. IAM AccountB
책을 역할에 연결합니다.
다음 단원에는 절차와 예제가 나와 있습니다.
1단계: AccountA에서 리포지토리 액세스를 위한 정책 생성
AccountA에서 AccountB 의 사용자에게 AccountA의 리포지토리에 대한 액세스 권한을 부여하는 정책을 생성할 수 있습니다. AccountB 허용할 액세스 수준에 따라 다음 중 하나를 수행합니다.
AccountB 사용자가 특정 리포지토리에 액세스는 할 수 있지만 AccoutA의 모든 리포지토리 목록을 보는 것은 허용하지 않도록 정책을 구성합니다.
AccountB 사용자가 AccountA의 모든 리포지토리 목록에서 리포지토리를 선택할 수 있도록 추가 액세스를 구성합니다.
리포지토리 액세스를 위한 정책을 생성하려면
AccountA 에서 정책을 생성할 권한이 있는 IAM 사용자로 AWS 관리 콘솔에 로그인합니다.
에서 IAM 콘솔을 엽니다https://console.aws.amazon.com/iam/
. 탐색 창에서 Policies를 선택합니다.
정책 생성을 선택합니다.
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 콘솔에서 공유 리포지토리의 홈 페이지에 대한 직접 링크를 해당 사용자에게 전송해야 합니다.
정책 검토를 선택합니다. 정책 검사기는 구문 오류를 보고합니다(예를 들어, Amazon Web Services 계정 ID 및 리포지토리 이름을 Amazon Web Services 계정 ID 및 리포지토리 이름으로 교체하는 것을 잊은 경우).
정책 검토 페이지에서 정책의 이름(예:
CrossAccountAccessForMySharedDemoRepo
). 이 정책에 대한 선택적 설명을 제공할 수도 있습니다. 정책 생성을 선택합니다.
2단계: AccountA에서 리포지토리 액세스를 위한 역할 생성
정책을 구성한 후 AccountB의 IAM 사용자 및 그룹이 수임할 수 있는 역할을 생성하고 해당 역할에 정책을 연결합니다.
리포지토리 액세스를 위한 역할을 생성하려면
IAM 콘솔에서 역할을 선택합니다.
역할 생성을 선택합니다.
다른 Amazon Web Services 계정을 선택합니다.
계정 ID 에 AccountB의 Amazon Web Services 계정 ID(예:
888888888888
). 다음: 권한 을 선택합니다.권한 정책 연결 에서 이전 절차(
CrossAccountAccessForMySharedDemoRepo
). 다음: 검토를 선택합니다.역할 이름 에 역할 이름을 입력합니다(예:
MyCrossAccountRepositoryContributorRole
). 선택적 설명을 입력하여 다른 사람이 역할의 목적을 이해하는 데 도움이 될 수도 있습니다.역할 생성을 선택합니다.
방금 생성한 역할을 열고 역할ARN(예:
arn:aws:iam::
)을 복사합니다. 이를 ARN AccountB 관리자에게 제공해야 합니다.111122223333
:role/MyCrossAccountRepositoryContributorRole