IAM과 CodeCommit을 함께 사용: Git 자격 증명, SSH 키 및 AWS 액세스 키
CodeCommit은 AWS 클라우드에서 프라이빗 Git 리포지토리를 호스팅하는 관리형 버전 관리 서비스입니다. CodeCommit을 사용하려면 CodeCommit 리포지토리와 통신하도록 Git 클라이언트를 구성합니다. 이 구성의 일환으로 CodeCommit에서 사용자 인증에 사용할 수 있는 IAM 자격 증명을 제공합니다. IAM에서는 세 가지 유형의 자격 증명으로 CodeCommit을 지원합니다.
-
Git 자격 증명: HTTPS를 통해 CodeCommit 리포지토리와 통신하는 데 사용할 수 있는 IAM 생성 사용자 이름 및 암호 페어입니다.
-
SSH 키: SSH를 통해 CodeCommit 리포지토리와 통신하기 위해 IAM 사용자와 연결할 수 있는 로컬로 생성된 퍼블릭-프라이빗 키 페어입니다.
-
AWS 액세스 키: HTTPS를 통해 CodeCommit 리포지토리와 통신하기 위해 AWS CLI에 포함된 자격 증명 헬퍼와 함께 사용할 수 있습니다.
참고
또 다른 AWS 계정에서 리포지토리에 액세스하기 위해 SSH 키나 Git 자격 증명을 사용할 수 없습니다. 다른 AWS 계정의 IAM 사용자 및 그룹에 대해 CodeCommit 리포지토리 액세스를 구성하는 방법을 알아보려면 AWS CodeCommit 사용 설명서에서 역할을 사용하여 AWS CodeCommit 리포지토리에 대한 크로스 계정 액세스 구성을 참조하세요.
각 옵션에 대한 자세한 내용은 다음 섹션을 참조하세요.
CodeCommit에 Git 자격 증명 및 HTTPS 사용(권장)
Git 자격 증명을 사용하여 IAM 사용자에 대한 정적 사용자 이름 및 암호 페어를 생성한 다음 HTTPS 연결에 이러한 자격 증명을 사용합니다. 정적 Git 자격 증명을 지원하는 타사 도구 또는 IDE(통합 개발 환경)에서도 이러한 자격 증명을 사용할 수 있습니다.
이러한 자격 증명은 모든 지원되는 운영 체제에 공통적이고 대부분의 자격 증명 관리 시스템, 개발 환경 및 기타 소프트웨어 개발 도구와 호환되므로 이는 권장되는 방법입니다. 언제든지 Git 자격 증명에 대한 암호를 재설정할 수 있습니다. 또한 자격 증명이 더 이상 필요하지 않은 경우 자격 증명을 비활성화하거나 삭제할 수 있습니다.
참고
Git 자격 증명에 대해 본인의 사용자 이름 또는 암호를 선택할 수 없습니다. IAM에서는 사용자가 AWS에 대한 보안 표준을 준수하고 CodeCommit에서 리포지토리를 보호하도록 돕기 위해 이러한 자격 증명을 생성합니다. 자격 증명은 생성될 때 한 번만 다운로드할 수 있습니다. 따라서 자격 증명을 안전한 장소에 보관하세요. 필요한 경우 언제든지 암호를 재설정할 수 있지만, 그러면 이전 암호를 사용하여 구성된 연결은 무효화됩니다. 새 암호를 사용하여 연결하려면 연결을 다시 구성해야 합니다.
자세한 내용은 다음 주제 섹션을 참조하세요.
-
IAM 사용자를 생성하려면 AWS 계정에서 IAM 사용자 생성 섹션을 참조하세요
-
CodeCommit에서 Git 자격 증명을 생성하고 사용하려면 AWS CodeCommit 사용 설명서의 Git 자격 증명을 사용하는 HTTPS 사용자의 경우를 참조하세요.
참고
Git 자격 증명을 생성한 이후에 IAM 사용자의 이름을 변경해도 Git 자격 증명의 사용자 이름은 변경되지 않습니다. 사용자 이름과 암호는 동일하게 유지되고 계속 유효합니다.
서비스별 보안 인증을 업데이트하려면
-
현재 사용 중인 서비스별 자격 증명 세트 이외에 두 번째 세트를 만듭니다.
-
새 자격 증명 세트를 사용하도록 모든 애플리케이션을 업데이트하고 애플리케이션이 작동하는지 확인합니다.
-
원래 자격 증명의 상태를 "Inactive"로 변경합니다.
-
모든 애플리케이션이 계속 작동하는지 확인합니다.
-
비활성 서버별 자격 증명을 삭제합니다.
CodeCommit에 SSH 키 및 SSH 사용
SSH 연결을 사용하여 Git 및 CodeCommit에서 SSH 인증에 사용하는 퍼블릭 및 프라이빗 키 파일을 로컬 시스템에서 생성합니다. 퍼블릭 키를 IAM 사용자와 연결하고 프라이빗 키를 로컬 시스템에 저장합니다. 자세한 내용은 다음 주제 섹션을 참조하세요.
-
IAM 사용자를 생성하려면 AWS 계정에서 IAM 사용자 생성 섹션을 참조하세요
-
SSH 퍼블릭 키를 생성하여 IAM 사용자와 연결하려면 AWS CodeCommit 사용 설명서에서 Linux, macOS 또는 Unix에서 SSH 연결의 경우 또는 Windows에서 SSH 연결의 경우를 참조하세요.
참고
퍼블릭 키는 ssh-rsa 형식 또는 PEM 형식으로 인코딩해야 합니다. 퍼블릭 키의 최소 비트 길이는 2048비트이고 최대 길이는 16384비트입니다. 이것은 업로드하는 파일의 크기와는 별개입니다. 예를 들어 2048비트 키를 생성할 수 있으며 결과 PEM 파일의 길이는 1679바이트입니다. 퍼블릭 키를 다른 형식 또는 크기로 제공하면 키 형식이 잘못되었다는 오류 메시지가 표시됩니다.
AWS CLI 자격 증명 헬퍼 및 CodeCommit에 HTTPS 사용
Git 자격 증명을 사용한 HTTPS 연결의 대안으로, Git에서 CodeCommit 리포지토리와 상호 작용하기 위해 AWS에 인증해야 할 때마다 암호화 방식으로 서명된 IAM 사용자 자격 증명 또는 Amazon EC2 인스턴스 역할을 사용하도록 허용할 수 있습니다. 이는 IAM 사용자 없이 CodeCommit 리포지토리에 연결할 수 있는 유일한 방법입니다. 또한 페더레이션 액세스 및 임시 자격 증명으로 작동되는 유일한 방법입니다. 자세한 내용은 다음 주제 섹션을 참조하세요.
-
페더레이션 액세스에 대한 자세한 내용은 자격 증명 공급자 및 페더레이션 및 외부에서 인증된 사용자에 대한 액세스(ID 페더레이션) 단원을 참조하십시오.
-
임시 자격 증명에 대한 자세한 내용은 IAM의 임시 보안 자격 증명 및 CodeCommit 리포지토리에 대한 임시 액세스를 참조하세요.
AWS CLI Credential Helper는 Keychain Access, Windows Credential Management 등과 같은 다른 자격 증명 헬퍼 시스템과 호환되지 않습니다. HTTPS를 통한 자격 증명 헬퍼 연결을 구성할 때 고려해야 할 추가 사항이 있습니다. 자세한 내용은 AWS CodeCommit 사용 설명서에서 AWS CLI 자격 증명 헬퍼를 사용한 Linux, macOS 또는 Unix에서 HTTPS 연결 또는 AWS CLI 자격 증명 헬퍼를 사용하여 Windows에서 HTTPS 연결을 참조하세요.