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

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

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

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

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

1단계: AccountB 사용자가 AccountA의 리포지토리에 액세스하도록 AWS CLI 및 Git 구성

SSH 키 또는 Git 자격 증명을 사용하여 다른 Amazon Web Services 계정의 리포지토리에 액세스할 수 없습니다. AccountB 사용자는 git-remote-codecommit (권장) 또는 자격 증명 도우미를 사용하여 AccountA의 공유 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 사용자의 액세스 키와 비밀 키를 입력합니다. 예를 들어 다음 명령을 실행하여 미국 동부(오하MyCrossAccountAccessProfile이오)(us-east-2)의 AccountA에서 리포지토리에 액세스하는 데 사용하는 라는 프로필을 생성합니다 AWS CLI .

    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, 다른 계정ARN의 리포지토리에 액세스하기 위해 수임하는 AccountA의 역할, 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 리포지토리 복제 및 액세스

교차 계정 CodeCommit 리포지토리를 복제하거나 그 리포지토리에 푸시하거나 그 리포지토리에서 가져오려면 git clone, git pushgit pull 명령을 실행합니다. AWS Management Console에 로그인하고 역할을 전환하며 CodeCommit 콘솔을 사용하여 다른 계정의 리포지토리와 상호 작용할 수도 있습니다.

참고

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

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

    git clone codecommit://MyCrossAccountAccessProfile@MySharedDemoRepo

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

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

  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. AccountA의 리포지토리 AWS Management Console 에 대한 교차 계정 액세스 권한이 부여된 IAM 사용자로 AccountA(888888888888)의에 로그인합니다. AccountB

  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 단원을 참조하십시오.