

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

# 크로스 계정 리포지토리 액세스: AccountA의 관리자를 위한 작업
<a name="cross-account-administrator-a"></a>

AccountB의 사용자나 그룹이 AccountA의 리포지토리에 액세스할 수 있도록 허용하려면 AccountA 관리자가 다음과 같이 해야 합니다.
+ AccountA에서 리포지토리에 대한 액세스 권한을 부여하는 정책을 생성합니다.
+ AccountA에서 AccountB의 IAM 사용자 및 그룹이 수임할 수 있는 역할을 생성합니다.
+ 책을 역할에 연결합니다.

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

**Topics**
+ [1단계: AccountA에서 리포지토리 액세스를 위한 정책 생성](#cross-account-create-policy-a)
+ [2단계: AccountA에서 리포지토리 액세스를 위한 역할 생성](#cross-account-create-role-a)

## 1단계: AccountA에서 리포지토리 액세스를 위한 정책 생성
<a name="cross-account-create-policy-a"></a>

AccountB 사용자에게 AccountA 리포지토리 액세스 권한을 부여하는 정책을 AccountA에서 생성할 수 있습니다. 허용할 액세스 수준에 따라 다음 중 하나를 수행합니다.
+ AccountB 사용자가 특정 리포지토리에 액세스는 할 수 있지만 AccoutA의 모든 리포지토리 목록을 보는 것은 허용하지 않도록 정책을 구성합니다.
+ AccountB 사용자가 AccountA의 모든 리포지토리 목록에서 리포지토리를 선택할 수 있도록 추가 액세스를 구성합니다.<a name="cross-account-create-policy-a-procedure"></a>

**리포지토리 액세스를 위한 정책을 생성하려면**

1. AccountA에서 정책을 생성할 권한이 있는 IAM 사용자로 AWS Management Console에 로그인합니다.

1. [https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/)에서 IAM 콘솔을 엽니다.

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

1. **정책 생성**을 선택합니다.

1. **JSON** 탭에서 다음과 같은 JSON 정책 문서를 JSON 텍스트 상자에 붙여 넣습니다. *us-east-2*를 해당 리포지토리의 AWS 리전 으로, *111122223333*을 AccountA의 계정 ID로, *MySharedDemoRepo*를 AccountA의 CodeCommit 리포지토리 이름으로 교체합니다.

------
#### [ JSON ]

****  

   ```
   {
   "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 콘솔 홈 페이지에서 리포지토리 목록을 볼 수 있도록 하고 싶으면 정책에 다음과 같이 설명문을 추가합니다.

------
#### [ JSON ]

****  

   ```
   {
       "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 콘솔의 공유 리포지토리 홈 페이지에 대한 직접 링크를 전송해야 합니다.

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

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

## 2단계: AccountA에서 리포지토리 액세스를 위한 역할 생성
<a name="cross-account-create-role-a"></a>

정책을 구성한 후에는 AccountB의 IAM 사용자 및 그룹이 수임할 수 있는 역할을 생성하고 이 역할에 정책을 연결합니다.<a name="cross-account-create-role-a-procedure"></a>

**리포지토리 액세스를 위한 역할을 생성하려면**

1. IAM 콘솔에서 **역할**을 선택합니다.

1. **역할 생성**을 선택합니다.

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

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

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

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

1. **역할 생성**을 선택합니다.

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