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

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

크로스 계정 리포지토리 액세스: AccountB의 리포지토리 사용자를 위한 작업

AccountA의 리포지토리에 액세스하려면 AccountB 그룹의 사용자가 리포지토리 액세스가 가능하도록 로컬 컴퓨터를 구성해야 합니다. 다음 단원에는 절차와 예제가 나와 있습니다.

1단계: 계정 B 사용자가 계정 A의 리포지토리에 액세스할 수 있도록 AWS CLI 및 Git을 구성합니다.

또 다른 Amazon Web Services 계정에서 리포지토리에 액세스하기 위해 SSH 키나 Git 보안 인증 정보를 사용할 수 없습니다. AccountB 사용자는 AccountA의 공유 저장소에 CodeCommit 액세스할 때 자격 증명 도우미 중 하나 git-remote-codecommit (권장) 또는 자격 증명 도우미를 사용하도록 컴퓨터를 구성해야 합니다. 그러나 AccountB에서 리포지토리에 액세스할 때 SSH 키나 Git 자격 증명을 계속 사용할 수 있습니다.

git-remote-codecommit를 사용하여 액세스를 구성하려면 다음 단계를 수행합니다. git-remote-codecommit를 아직 설치하지 않은 경우 Python 패키지 인덱스 웹사이트의 git-remote-codecommit에서 다운로드하세요.

계정 간 액세스를 위해 AWS CLI 및 Git을 구성하려면
  1. 로컬 AWS CLI 컴퓨터에 설치합니다. AWS CLI설치 단원의 운영 체제 지침을 참조하세요.

  2. 로컬 컴퓨터에 Git를 설치합니다. Git를 설치하려면 Git 다운로드 또는 Windows용 Git 같은 웹 사이트를 이용하세요.

    참고

    CodeCommit Git 버전 1.7.9 이상을 지원합니다. Git 버전 2.28에서는 초기 커밋을 위한 브랜드 이름을 구성할 수 있습니다. 최신 버전의 Git를 사용하는 것이 좋습니다. Git은 계속 개선되며 정기적으로 업데이트되는 플랫폼입니다. 경우에 따라 기능 변경이 작동 방식에 영향을 미칠 수 있습니다. CodeCommit 특정 버전의 Git에서 문제가 발생하는 경우 의 정보를 검토하세요. CodeCommit 문제 해결

  3. 리포지토리를 복제할 디렉터리 위치의 터미널이나 명령줄에서 git config --local user.namegit config --local user.email 명령을 실행하여 리포지토리에 수행할 커밋의 사용자 이름과 이메일을 설정합니다. 예:

    git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com

    이 명령은 어떤 결과도 반환하지 않지만, 지정한 이메일 및 사용자 이름은 AccountA의 리포지토리에서 수행하는 커밋에 연결됩니다.

  4. aws configure --profile 명령을 실행하여 AccountB의 리소스에 연결할 때 사용할 기본 프로필을 구성합니다. 메시지가 표시되면 IAM 사용자의 액세스 키와 비밀 키를 입력합니다.

    참고

    이미 프로필을 AWS CLI 설치하고 구성한 경우 이 단계를 건너뛰어도 됩니다.

    예를 들어 다음 명령을 실행하여 미국 동부 (오하이오) (us-east-2) 에 있는 AccountB의 AWS 리소스에 액세스하는 데 사용하는 기본 AWS CLI 프로필을 생성합니다.

    aws configure

    요청 메시지가 나타나면 다음 정보를 입력합니다.

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  5. aws configure --profile 명령을 다시 실행하여 AccountA의 리포지토리에 연결할 때 사용할 명명된 프로필을 구성합니다. 메시지가 표시되면 IAM 사용자의 액세스 키와 비밀 키를 입력합니다. 예를 들어, 다음 명령을 실행하여 미국 동부 (오하이오) 의 AccountA (us-east-2) 에 있는 저장소에 액세스하는 데 사용할 이름이 지정된 AWS CLI MyCrossAccountAccessProfile프로필을 생성합니다.

    aws configure --profile MyCrossAccountAccessProfile

    요청 메시지가 나타나면 다음 정보를 입력합니다.

    AWS Access Key ID [None]: Your-IAM-User-Access-Key AWS Secret Access Key ID [None]: Your-IAM-User-Secret-Access-Key Default region name ID [None]: us-east-2 Default output format [None]: json
  6. 일반 텍스트 편집기에서 AWS CLI 구성 파일이라고도 하는 config 파일을 엽니다. 운영 체제에 따라 이 파일의 위치는 다를 수 있습니다. Linux, macOS, Unix의 경우 ~/.aws/config에, Windows의 경우 drive:\Users\USERNAME\.aws\config에 위치할 수 있습니다.

  7. 파일에서 AccountB의 리포지토리에 액세스하도록 구성한 기본 프로파일에 해당하는 항목을 찾습니다. 예를 들면 다음과 같아야 합니다.

    [default] region = us-east-2 output = json

    account를 프로파일 구성에 추가합니다. AccountB의 AWS 계정 ID를 제공합니다. 예:

    [default] account = 888888888888 region = us-east-2 output = json
  8. 파일에서 방금 만든 MyCrossAccountAccessProfile프로필에 해당하는 항목을 찾으십시오. 예를 들면 다음과 같아야 합니다.

    [profile MyCrossAccountAccessProfile] region = us-east-2 output = json

    account, role_arnsource_profile을 프로파일 구성에 추가합니다. AccountA의 Amazon Web Services 계정 ID, 다른 계정의 리포지토리에 액세스하기 위해 AccountA에서 수임하는 역할 ARN, 그리고 AccountB의 기본 AWS CLI 프로파일의 이름을 입력합니다. 예:

    [profile MyCrossAccountAccessProfile] region = us-east-2 account = 111122223333 role_arn = arn:aws:iam::111122223333:role/MyCrossAccountRepositoryContributorRole source_profile = default output = json

    변경 사항을 저장하고 일반 텍스트 편집기를 닫습니다.

2단계: AccountA의 CodeCommit 리포지토리 복제 및 액세스

교차 계정 git pull 리포지토리를 실행하고 git clonegit push, 크로스 계정 CodeCommit 리포지토리를 복제하고, 푸시하고, 가져올 수 있습니다. 또한 AWS 관리 콘솔에 로그인하여 역할을 전환하고 콘솔을 사용하여 다른 계정의 리포지토리와 상호 작용할 수 있습니다. CodeCommit

참고

IAM 역할이 구성된 방식에 따라 의 기본 페이지에서 리포지토리를 볼 수 있을 수도 있습니다. CodeCommit 리포지토리를 볼 수 없는 경우 리포지토리 관리자에게 콘솔에 있는 공유 리포지토리의 코드 페이지로 연결되는 URL 링크를 이메일로 보내달라고 요청하십시오. CodeCommit URL은 다음과 비슷합니다.

https://console.aws.amazon.com/codecommit/home?region=us-east-2#/repository/MySharedDemoRepo/browse/HEAD/--/
교차 계정 리포지토리를 로컬 컴퓨터에 복제하려면
  1. 리포지토리를 복제할 디렉터리의 명령줄 또는 터미널에서 HTTPS (GRC) 복제 URL을 사용하여 git clone 명령을 실행합니다. 예:

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

    달리 지정하지 않는 한, 리포지토리는 리포지토리와 같은 이름으로 하위 디렉터리에 복제됩니다.

  2. 복제된 리포지토리로 디렉터리를 변경한 다음, 파일을 추가하거나 변경합니다. 예를 들어, .txt라는 NewFile 파일을 추가할 수 있습니다.

  3. 로컬 리포지토리의 추적된 변경 내용에 파일을 추가하고, 변경 내용을 커밋하고, 파일을 리포지토리로 푸시합니다. CodeCommit 예:

    git add NewFile.txt git commit -m "Added a file to test cross-account access to this repository" git push

    자세한 정보는 Git 및 AWS CodeCommit 시작하기을 참조하세요.

이제 파일을 추가했으니 CodeCommit 콘솔로 이동하여 커밋을 확인하고, 리포지토리에 대한 다른 사용자의 변경 사항을 검토하고, 풀 리퀘스트에 참여하는 등의 작업을 수행하세요.

콘솔에서 크로스 계정 리포지토리에 접근하려면 CodeCommit
  1. 계정 A의 저장소에 대한 교차 계정 액세스 권한을 부여받은 IAM 사용자로 계정 B (888888888888) 에 로그인합니다. AWS Management Console

  2. 탐색 표시줄에서 사용자 이름을 선택하고 드롭다운 메뉴로 가서 역할 전환을 선택합니다.

    참고

    이 옵션을 선택한 것이 처음인 경우에는 해당 페이지에서 정보를 검토하고 다시 역할 전환을 선택합니다.

  3. 역할 전환 페이지에서 다음을 수행합니다.

    • 계정에서 AccountA의 계정 ID(예: 111122223333))를 입력합니다.

    • AccountA의 리포지토리에 액세스할 수 있도록 위임할 역할의 이름 (예:) 을 역할에 입력합니다. MyCrossAccountRepositoryContributorRole

    • 표시 이름에 이 역할의 표시 이름을 입력합니다. 이 이름은 역할을 수임할 때 콘솔에 표시됩니다. 또한 나중에 콘솔에서 역할을 전환할 때 수임된 역할 목록에 나타납니다.

    • (선택 사항) 색상에서 디스플레이 이름의 컬러 레이블을 선택합니다.

    • 역할 전환을 선택합니다.

    자세한 내용은 역할 전환(AWS Management Console) 단원을 참조하세요.

  4. https://console.aws.amazon.com/codesuite/codecommit/home 에서 CodeCommit 콘솔을 엽니다.

    수임된 역할이 AccountA의 리포지토리 이름을 볼 수 있는 권한을 가지고 있는 경우에는 리포지토리 목록과 상태 보기 권한이 없음을 알리는 오류 메시지가 표시됩니다. 이는 예상된 동작입니다. 목록에서 공유 리포지토리의 이름을 선택합니다.

    수임된 역할이 AccountA의 리포지토리 이름을 볼 수 있는 권한이 없는 경우에는 오류 메시지와 리포지토리가 없이 빈 목록이 표시됩니다. 리포지토리에 대한 URL 링크를 붙여 넣거나 콘솔 링크를 수정한 다음, /list를 공유 리포지토리 이름(예: /MySharedDemoRepo)으로 변경합니다.

  5. 코드에서 로컬 컴퓨터에서 추가한 파일 이름을 찾습니다. 파일에서 코드를 검색한 다음, 리포지토리의 나머지 부분을 검색하고 기능을 사용하기 시작하려면 이를 선택합니다.

    자세한 정보는 시작하기 AWS CodeCommit을 참조하세요.