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을 구성하려면
-
로컬 AWS CLI 컴퓨터에 를 설치합니다. AWS CLI설치 단원의 운영 체제 지침을 참조하세요.
-
로컬 컴퓨터에 Git를 설치합니다. Git를 설치하려면 Git 다운로드
또는 Windows용 Git 같은 웹 사이트를 이용하세요. 참고
CodeCommit 는 Git 버전 1.7.9 이상을 지원합니다. Git 버전 2.28에서는 초기 커밋을 위한 브랜드 이름을 구성할 수 있습니다. 최신 버전의 Git를 사용하는 것이 좋습니다. Git은 계속 개선되며 정기적으로 업데이트되는 플랫폼입니다. 때때로 기능 변경이 에서 작동하는 방식에 영향을 미칠 수 있습니다 CodeCommit. 특정 버전의 Git 및 에 문제가 있는 경우 의 정보를 CodeCommit검토합니다문제 해결.
-
리포지토리를 복제할 디렉터리 위치의 터미널이나 명령줄에서 git config --local user.name 및 git config --local user.email 명령을 실행하여 리포지토리에 수행할 커밋의 사용자 이름과 이메일을 설정합니다. 예:
git config --local user.name "Saanvi Sarkar" git config --local user.email saanvi_sarkar@example.com
이 명령은 어떤 결과도 반환하지 않지만, 지정한 이메일 및 사용자 이름은 AccountA의 리포지토리에서 수행하는 커밋에 연결됩니다.
-
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 -
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 -
일반 텍스트 편집기에서 AWS CLI 구성 파일이라고도 하는
config
파일을 엽니다. 운영 체제에 따라 이 파일은 Linux, macOS 또는 Unix의 에 위치하거나~/.aws/config
에 위치할 수 있습니다.drive
:\Users\USERNAME
Windows에서 \.aws\config. -
파일에서 AccountB의 리포지토리에 액세스하도록 구성한 기본 프로파일에 해당하는 항목을 찾습니다. 예를 들면 다음과 같아야 합니다.
[default] region = us-east-2 output = json
account
를 프로파일 구성에 추가합니다. AccountB의 AWS 계정 ID를 제공합니다. 예:[default] account =
888888888888
region = us-east-2 output = json -
파일에서 에 해당하는 항목을 찾습니다.
MyCrossAccountAccessProfile
방금 생성한 프로필입니다. 예를 들면 다음과 같아야 합니다.[profile
MyCrossAccountAccessProfile
] region = us-east-2 output = jsonaccount
,role_arn
및source_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/--/
교차 계정 리포지토리를 로컬 컴퓨터에 복제하려면
-
명령줄 또는 터미널의 리포지토리를 복제하려는 디렉터리에서 HTTPS (GRC) 복제본 로 git clone 명령을 실행합니다URL. 예:
git clone codecommit://
MyCrossAccountAccessProfile
@MySharedDemoRepo
달리 지정하지 않는 한, 리포지토리는 리포지토리와 같은 이름으로 하위 디렉터리에 복제됩니다.
-
복제된 리포지토리로 디렉터리를 변경한 다음, 파일을 추가하거나 변경합니다. 예를 들어 라는 파일을 추가할 수 있습니다.
NewFile.txt
. -
로컬 리포지토리에 대해 추적된 변경 사항에 파일을 추가하고, 변경 사항을 커밋하고, 파일을 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 콘솔에서 교차 계정 리포지토리에 액세스하려면
-
AccountB AWS Management Console (
888888888888
)를 AccountA 의 리포지토리에 대한 교차 계정 액세스 권한이 부여된 IAM 사용자로 지정합니다. -
탐색 표시줄에서 사용자 이름을 선택하고 드롭다운 메뉴로 가서 역할 전환을 선택합니다.
참고
이 옵션을 선택한 것이 처음인 경우에는 해당 페이지에서 정보를 검토하고 다시 역할 전환을 선택합니다.
-
역할 전환 페이지에서 다음을 수행합니다.
-
계정 에서 AccountA의 계정 ID를 입력합니다(예:
111122223333
). -
역할 에서 AccountA의 리포지토리에 액세스하기 위해 수임하려는 역할의 이름을 입력합니다(예:
MyCrossAccountRepositoryContributorRole
). -
표시 이름에 이 역할의 표시 이름을 입력합니다. 이 이름은 역할을 수임할 때 콘솔에 표시됩니다. 또한 나중에 콘솔에서 역할을 전환할 때 수임된 역할 목록에 나타납니다.
-
(선택 사항) 색상에서 디스플레이 이름의 컬러 레이블을 선택합니다.
-
역할 전환을 선택합니다.
-
https://console.aws.amazon.com/codesuite/codecommit/home
에서 CodeCommit 콘솔을 엽니다. 수임된 역할이 AccountA의 리포지토리 이름을 볼 수 있는 권한을 가지고 있는 경우에는 리포지토리 목록과 상태 보기 권한이 없음을 알리는 오류 메시지가 표시됩니다. 이는 예상된 동작입니다. 목록에서 공유 리포지토리의 이름을 선택합니다.
수임된 역할이 AccountA의 리포지토리 이름을 볼 수 있는 권한이 없는 경우에는 오류 메시지와 리포지토리가 없이 빈 목록이 표시됩니다. URL 링크를 리포지토리에 붙여넣거나 콘솔 링크를 수정하고 공유
/list
리포지토리의 이름으로 변경합니다(예:/
).MySharedDemoRepo
-
코드에서 로컬 컴퓨터에서 추가한 파일 이름을 찾습니다. 파일에서 코드를 검색한 다음, 리포지토리의 나머지 부분을 검색하고 기능을 사용하기 시작하려면 이를 선택합니다.
자세한 내용은 시작하기 AWS CodeCommit 단원을 참조하십시오.