쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

SageMaker 노트북 인스턴스에 다른 AWS 계정의 CodeCommit 리포지토리에 대한 임시 액세스 권한 부여 - 권장 가이드

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

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

SageMaker 노트북 인스턴스에 다른 AWS 계정의 CodeCommit 리포지토리에 대한 임시 액세스 권한 부여

작성자: Helge Aufderheide(AWS)

요약

알림: AWS CodeCommit 신규 고객은 더 이상를 사용할 수 없습니다. 의 기존 고객은 평소와 같이 서비스를 계속 사용할 AWS CodeCommit 수 있습니다. 자세히 알아보기

이 패턴은 Amazon SageMaker 노트북 인스턴스와 사용자에게 다른 AWS 계정에 있는 AWS CodeCommit 리포지토리에 대한 임시 액세스 권한을 부여하는 방법을 보여줍니다. 또한 이 패턴은 각 엔티티가 각 리포지토리에서 수행할 수 있는 특정 작업에 대해 세분화된 권한을 부여하는 방법을 보여줍니다.

조직에서는 종종 개발 환경을 호스팅하는 계정과 다른 AWS 계정에 CodeCommit 리포지토리를 저장합니다. 이 다중 계정 설정은 리포지토리에 대한 액세스를 제어하고 실수로 삭제될 위험을 줄이는 데 도움이 됩니다. 이러한 교차 계정 권한을 부여하기 위해 AWS Identity and Access Management(IAM) 역할을 사용하는 것이 좋습니다. 그러면 각 AWS 계정의 사전 정의된 IAM ID가 일시적으로 역할을 맡아 계정 전체에 통제된 신뢰 체인을 만들 수 있습니다.

참고

유사한 절차를 적용하여 다른 IAM 자격 증명에 CodeCommit 리포지토리에 대한 교차 계정 액세스 권한을 부여할 수 있습니다. 자세한 내용은 AWS CodeCommit 사용 설명서역할을 사용하여 AWS CodeCommit 리포지토리에 대한 크로스 계정 액세스 구성을 참조하세요.

사전 조건 및 제한 사항

사전 조건 

  • CodeCommit 리포지토리가 있는 활성 AWS 계정(계정 A)

  • SageMaker 노트북 인스턴스가 있는 두 번째 활성 AWS 계정 (계정 B)

  • 계정 A에서 IAM 역할을 생성하고 수정할 수 있는 충분한 권한을 가진 AWS 사용자

  • 계정 B에서 IAM 역할을 생성하고 수정할 수 있는 충분한 권한을 가진 두 번째 AWS 사용자

아키텍처

다음 다이어그램은 SageMaker 노트북 인스턴스와 하나의 AWS 계정의 사용자에게 CodeCommit 리포지토리에 대한 크로스 계정 액세스 권한을 부여하는 예제 워크플로우를 보여줍니다.

CodeCommit에 대한 크로스 계정 액세스를 위한 워크플로우

이 다이어그램은 다음 워크플로우를 보여줍니다.

  1. 계정 B의 AWS 사용자 역할 및 SageMaker 노트북 인스턴스 역할은 명명된 프로필을 가정합니다.

  2. 명명된 프로필의 권한 정책은 계정 A의 CodeCommit 액세스 역할을 지정합니다. 그러면 해당 프로필이 이 역할을 수임합니다.

  3. 계정 A에 대한 CodeCommit 액세스 역할의 신뢰 정책에 따라 계정 B의 명명된 프로필이 CodeCommit 액세스 역할을 수임할 수 있습니다.

  4. 계정 A의 CodeCommit 리포지토리 IAM 권한 정책은 CodeCommit 액세스 역할이 CodeCommit 리포지토리에 액세스하는 것을 허용합니다.

기술 스택

  • CodeCommit

  • Git

  • IAM

  • pip

  • SageMaker

도구

  • AWS CodeCommit은 나만의 원본 제어 시스템을 관리할 필요 없이 Git 리포지토리를 비공개로 저장하고 관리할 수 있는 버전 제어 서비스입니다.

  • AWS Identity and Access Management(IAM)는 사용자에 대한 인증 및 권한 부여를 제어함으로써 AWS 리소스에 대한 액세스를 안전하게 제어할 수 있습니다.

  • Git은 소프트웨어 개발 중에 소스 코드의 변경 사항을 추적하기 위한 분산 버전 제어 시스템입니다.

  • git-remote-codecommit은 Git을 확장하여 CodeCommit 리포지토리에서 코드를 푸시하고 가져오는 데 도움이 되는 유틸리티입니다.

  • pip는 Python용 패키지 인스톨러입니다. pip를 사용하여 Python 패키지 색인 및 기타 색인에서 패키지를 설치할 수 있습니다.

모범 사례

IAM 정책을 사용하여 권한을 설정하는 경우 작업을 수행하는 데 필요한 권한만 부여했는지 확인합니다. 자세한 내용은 IAM 설명서의 최소 권한 적용을 참조하십시오.

이 패턴을 구현할 때는 다음을 수행해야 합니다.

  • IAM 원칙에 각 리포지토리 내에서 필요한 특정 작업을 수행하는 데 필요한 권한만 있는지 확인합니다. 예를 들어 승인된 IAM 원칙이 특정 리포지토리 브랜치에 변경 내용을 푸시하고 병합하도록 허용하되 보호된 브랜치에 대한 병합만 요청할 수 있도록 허용하는 것이 좋습니다.

  • IAM 원칙에 각 프로젝트의 역할 및 책임에 따라 서로 다른 IAM 역할이 할당되었는지 확인합니다. 예를 들어, 개발자는 릴리스 관리자 또는 AWS 관리자와는 다른 액세스 권한을 가집니다.

에픽

작업설명필요한 기술

CodeCommit 액세스 역할 및 권한 정책을 구성합니다.

참고

이 에픽에 설명된 수동 설정 프로세스를 자동화하려면 AWS CloudFormation 템플릿을 사용할 수 있습니다.

CodeCommit 리포지토리가 포함된 계정(계정 A)에서 다음을 수행합니다.

  1. 계정 B에서 SageMaker 노트북 인스턴스 역할이 위임할 수 있는 IAM 역할을 생성합니다.

  2. 리포지토리에 대한 액세스 권한을 부여하는 IAM 정책을 생성하고 정책을 역할에 연결합니다. 테스트 목적으로만 AWSCodeCommitPowerUser AWS 관리형 정책을 선택합니다. 이 정책은 리소스 삭제 권한을 제외한 모든 CodeCommit 권한을 부여합니다.

  3. 계정 B가 신뢰할 수 있는 엔티티로 나열되도록 역할의 신뢰 정책을 수정합니다.

중요

이 설정을 프로덕션 환경으로 이동하기 전에 최소 권한 권한을 적용하는 자체 IAM 정책을 작성하는 것이 좋습니다. 자세한 내용은 이 패턴의 추가 정보 섹션을 참조하세요.

일반 AWS, AWS DevOps

계정 B의 SageMaker 노트북 인스턴스 역할에 계정 A의 CodeCommit 액세스 역할을 수임할 수 있는 권한을 부여합니다.

SageMaker 노트북 인스턴스의 IAM 역할(계정 B)이 포함된 계정에서 다음을 수행합니다.

  1. IAM 역할 또는 사용자가 계정 A에서 CodeCommit 액세스 역할을 수임하도록 허용하는 IAM 정책을 생성합니다.

    IAM 역할 또는 사용자가 크로스 계정 역할을 맡도록 허용하는 IAM 권한 정책의 예

    {   "Version": "2012-10-17",   "Statement": [       {     "Sid": "VisualEditor0",     "Effect": "Allow",     "Action": "sts:AssumeRole",     "Resource": "arn:aws:iam:::accountA_ID:role/accountArole_ID"   } }
  2. 정책을 계정 B에 있는 SageMaker 노트북 인스턴스의 역할에 연결합니다.

  3. 계정 B의 SageMaker 노트북 인스턴스 역할이 계정 A의 CodeCommit 액세스 역할을 맡도록 합니다.

참고

리포지토리의 Amazon 리소스 이름(ARN)을 보려면 AWS CodeCommit 사용 설명서의 CodeCommit 리포지토리 세부 정보 보기를 참조하세요. AWS CodeCommit

일반 AWS, AWS DevOps

IAM 역할 구성

작업설명필요한 기술

CodeCommit 액세스 역할 및 권한 정책을 구성합니다.

참고

이 에픽에 설명된 수동 설정 프로세스를 자동화하려면 AWS CloudFormation 템플릿을 사용할 수 있습니다.

CodeCommit 리포지토리가 포함된 계정(계정 A)에서 다음을 수행합니다.

  1. 계정 B에서 SageMaker 노트북 인스턴스 역할이 위임할 수 있는 IAM 역할을 생성합니다.

  2. 리포지토리에 대한 액세스 권한을 부여하는 IAM 정책을 생성하고 정책을 역할에 연결합니다. 테스트 목적으로만 AWSCodeCommitPowerUser AWS 관리형 정책을 선택합니다. 이 정책은 리소스 삭제 권한을 제외한 모든 CodeCommit 권한을 부여합니다.

  3. 계정 B가 신뢰할 수 있는 엔티티로 나열되도록 역할의 신뢰 정책을 수정합니다.

중요

이 설정을 프로덕션 환경으로 이동하기 전에 최소 권한 권한을 적용하는 자체 IAM 정책을 작성하는 것이 좋습니다. 자세한 내용은 이 패턴의 추가 정보 섹션을 참조하세요.

일반 AWS, AWS DevOps

계정 B의 SageMaker 노트북 인스턴스 역할에 계정 A의 CodeCommit 액세스 역할을 수임할 수 있는 권한을 부여합니다.

SageMaker 노트북 인스턴스의 IAM 역할(계정 B)이 포함된 계정에서 다음을 수행합니다.

  1. IAM 역할 또는 사용자가 계정 A에서 CodeCommit 액세스 역할을 수임하도록 허용하는 IAM 정책을 생성합니다.

    IAM 역할 또는 사용자가 크로스 계정 역할을 맡도록 허용하는 IAM 권한 정책의 예

    {   "Version": "2012-10-17",   "Statement": [       {     "Sid": "VisualEditor0",     "Effect": "Allow",     "Action": "sts:AssumeRole",     "Resource": "arn:aws:iam:::accountA_ID:role/accountArole_ID"   } }
  2. 정책을 계정 B에 있는 SageMaker 노트북 인스턴스의 역할에 연결합니다.

  3. 계정 B의 SageMaker 노트북 인스턴스 역할이 계정 A의 CodeCommit 액세스 역할을 맡도록 합니다.

참고

리포지토리의 Amazon 리소스 이름(ARN)을 보려면 AWS CodeCommit 사용 설명서의 CodeCommit 리포지토리 세부 정보 보기를 참조하세요. AWS CodeCommit

일반 AWS, AWS DevOps
작업설명필요한 기술

AWS SageMaker 노트북 인스턴스에서 계정 A의 역할을 맡을 사용자 프로필을 설정합니다.

SageMaker 노트북 인스턴스가 포함된 계정(계정 B)에서 다음을 수행합니다.

  1. AWS Management Console에 로그인하고 SageMaker 콘솔을 엽니다.

  2. SageMaker 노트북 인스턴스에 액세스합니다. Jupyter 인터페이스가 열립니다.

  3. 새로 만들기를 선택한 다음 터미널을 선택합니다. Jupyter 환경에 새 터미널 창이 열립니다.

  4. SageMaker 노트북 인스턴스의 ~/.aws/config 파일로 이동합니다. 그런 다음 아래의 명령문을 입력하여 파일에 사용자 프로필을 추가합니다.

------.aws/config-------------- [profile remoterepouser] role_arn = arn:aws:iam::<ID of Account A>:role/<rolename> role_session_name = remoteaccesssession region = eu-west-1 credential_source = Ec2InstanceMetadata ----------------------------------
일반 AWS, AWS DevOps

git-remote-codecommit 유틸리티를 설치합니다.

AWS CodeCommit 사용 설명서2단계: git-remote-codecommit 설치의 지침을 따릅니다.

데이터 사이언티스트

계정 B에서 SageMaker 노트북 인스턴스 설정

작업설명필요한 기술

AWS SageMaker 노트북 인스턴스에서 계정 A의 역할을 맡을 사용자 프로필을 설정합니다.

SageMaker 노트북 인스턴스가 포함된 계정(계정 B)에서 다음을 수행합니다.

  1. AWS Management Console에 로그인하고 SageMaker 콘솔을 엽니다.

  2. SageMaker 노트북 인스턴스에 액세스합니다. Jupyter 인터페이스가 열립니다.

  3. 새로 만들기를 선택한 다음 터미널을 선택합니다. Jupyter 환경에 새 터미널 창이 열립니다.

  4. SageMaker 노트북 인스턴스의 ~/.aws/config 파일로 이동합니다. 그런 다음 아래의 명령문을 입력하여 파일에 사용자 프로필을 추가합니다.

------.aws/config-------------- [profile remoterepouser] role_arn = arn:aws:iam::<ID of Account A>:role/<rolename> role_session_name = remoteaccesssession region = eu-west-1 credential_source = Ec2InstanceMetadata ----------------------------------
일반 AWS, AWS DevOps

git-remote-codecommit 유틸리티를 설치합니다.

AWS CodeCommit 사용 설명서2단계: git-remote-codecommit 설치의 지침을 따릅니다.

데이터 사이언티스트
작업설명필요한 기술

Git 명령 또는 SageMaker를 사용하여 CodeCommit 리포지토리에 접근할 수 있습니다.

Git 사용하기

계정 B에서 SageMaker 노트북 인스턴스의 역할을 맡은 IAM 주체는 이제 Git 명령을 실행하여 계정 A의 CodeCommit 리포지토리에 액세스할 수 있습니다. 예를 들어, 사용자는, git clone, git pull, git push 등의 명령을 실행할 수 있습니다.

지침은 AWS CodeCommit 사용 설명서AWS CodeCommit 리포지토리에 연결을 참조하세요.

CodeCommit과 함께 Git을 사용하는 방법에 대한 자세한 내용은 AWS CodeCommit 사용 설명서AWS CodeCommit 시작하기를 참조하세요.

SageMaker 사용하기

SageMaker 콘솔에서 Git을 사용하려면 Git이 CodeCommit 리포지토리에서 보안 인증 정보를 검색하도록 허용해야 합니다. 지침은 SageMaker 설명서의 다른 AWS 계정의 CodeCommit 리포지토리를 노트북 인스턴스와 연결을 참조하세요.

Git, bash 콘솔

리포지토리에 액세스

작업설명필요한 기술

Git 명령 또는 SageMaker를 사용하여 CodeCommit 리포지토리에 접근할 수 있습니다.

Git 사용하기

계정 B에서 SageMaker 노트북 인스턴스의 역할을 맡은 IAM 주체는 이제 Git 명령을 실행하여 계정 A의 CodeCommit 리포지토리에 액세스할 수 있습니다. 예를 들어, 사용자는, git clone, git pull, git push 등의 명령을 실행할 수 있습니다.

지침은 AWS CodeCommit 사용 설명서AWS CodeCommit 리포지토리에 연결을 참조하세요.

CodeCommit과 함께 Git을 사용하는 방법에 대한 자세한 내용은 AWS CodeCommit 사용 설명서AWS CodeCommit 시작하기를 참조하세요.

SageMaker 사용하기

SageMaker 콘솔에서 Git을 사용하려면 Git이 CodeCommit 리포지토리에서 보안 인증 정보를 검색하도록 허용해야 합니다. 지침은 SageMaker 설명서의 다른 AWS 계정의 CodeCommit 리포지토리를 노트북 인스턴스와 연결을 참조하세요.

Git, bash 콘솔

관련 리소스

추가 정보

CodeCommit 권한을 특정 작업에 제한하기

CodeCommit 리포지토리에서 IAM 주체가 수행할 수 있는 작업을 제한하려면 CodeCommit 액세스 정책에서 허용되는 작업을 수정합니다.

CodeCommit API 작업에 대한 자세한 내용은 AWS CodeCommit 사용 설명서CodeCommit 권한 참조를 참조하세요.

참고

사용 사례에 맞게 AWSCodeCommitPowerUser AWS 관리형 정책을 편집할 수도 있습니다.

CodeCommit 권한을 특정 리포지토리로 제한하기

특정 사용자만 둘 이상의 코드 리포지토리에 액세스할 수 있는 멀티테넌트 환경을 만들려면 다음을 수행합니다.

  1. 계정 A에서 CodeCommit 액세스 역할을 여러 개 만든 다음, 계정 B의 특정 사용자가 역할을 맡을 수 있도록 각 액세스 역할의 신뢰 정책을 구성합니다.

  2. 각 CodeCommit 액세스 역할 정책에 “리소스” 조건을 추가하여 각 역할이 맡을 수 있는 코드 리포지토리를 제한합니다.

특정 CodeCommit 리포지토리에 대한 IAM 보안 주체의 액세스를 제한하는 “리소스” 조건의 예

"Resource" : [<REPOSITORY_ARN>,<REPOSITORY_ARN> ]
참고

동일한 AWS 계정에서 여러 코드 리포지토리를 식별하고 구별하는 데 도움이 되도록 리포지토리 이름에 다른 접두사를 할당할 수 있습니다. 예를 들어 myproject-subproject1-repo1myproject-subproject2-repo1과 같이 다양한 개발자 그룹에 맞는 접두사를 사용하여 코드 리포지토리의 이름을 지정할 수 있습니다. 그런 다음 개발자 그룹에 할당된 접두사를 기반으로 각 개발자 그룹에 대한 IAM 역할을 생성할 수 있습니다. 예를 들어 myproject-subproject1-repoaccess라는 역할을 생성하고 myproject-subproject1 접두사가 포함된 모든 코드 리포지토리에 대한 액세스 권한을 부여할 수 있습니다.

특정 접두사가 포함된 코드 리포지토리 ARN을 참조하는 “리소스” 조건의 예

"Resource" : arn:aws:codecommit:<region>:<account-id>:myproject-subproject1-*
프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.