크로스 계정 리포지토리 액세스: 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 사용자의 액세스 키와 보안 키를 제공합니다. 예를 들어 다음 명령을 실행하여 라는 프로파일을 생성합니다 AWS CLI .MyCrossAccountAccessProfile 미국 동부(오하이오)(us-east-2)의 AccountA에서 리포지토리에 액세스하는 데 사용하는 :

    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에 위치할 수 있습니다.drive:\Users\USERNAMEWindows에서 \.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 리포지토리 복제 및 액세스

git clone, git push및 를 실행git pull하여 교차 계정 CodeCommit 리포지토리를 복제, 푸시 및 가져옵니다. AWS 관리 콘솔에 로그인하고 역할을 전환하고 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. AccountB AWS Management Console (888888888888)를 AccountA 의 리포지토리에 대한 교차 계정 액세스 권한이 부여된 IAM 사용자로 지정합니다.

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