Visual Studio Team Explorer에서 AWS CodeCommit 사용 - AWS Toolkit with Amazon Q

Visual Studio Team Explorer에서 AWS CodeCommit 사용

AWS Identity and Access Management(IAM) 사용자 계정을 사용하여 Git 보안 인증 정보를 생성하고, 해당 보안 인증 정보를 사용하여 Team Explorer 내에서 리포지토리를 생성하고 복제할 수 있습니다.

AWS CodeCommit에 대한 자격 증명 유형

대부분의 AWS Toolkit for Visual Studio 사용자는 액세스 키 및 비밀 키가 포함된 AWS 보안 인증 정보 프로필 설정에 대해 잘 파악하고 있습니다. 이러한 보안 인증 정보 프로필은 AWS 탐색기에서 Amazon S3 버킷을 나열하거나 Amazon EC2 인스턴스를 시작하는 등 Toolkit for Visual Studio에서 서비스 API에 대한 호출을 활성화하는 데 사용됩니다. Team Explorer와 AWS CodeCommit의 통합에서도 이러한 자격 증명 프로파일을 사용합니다. 그러나 Git 자체로 작업하려면 추가 자격 증명이 필요합니다. 특히 HTTPS 연결에 대해서는 Git 자격 증명이 필요합니다. AWS CodeCommit 사용 설명서Git 보안 인증 정보를 사용하는 HTTPS 사용자 설정에서 이러한 보안 인증 정보(사용자 이름 및 암호)에 대한 내용을 읽을 수 있습니다.

IAM 사용자 계정에 대해서만 AWS CodeCommit용 Git 보안 인증 정보를 생성할 수 있습니다. 루트 계정에 대해서는 해당 자격 증명을 생성할 수 없습니다. 서비스에 대해 이러한 자격 증명 집합을 최대 2개까지 생성할 수 있습니다. 자격 증명 집합을 비활성 상태로 표시하는 경우에도 비활성 집합이 두 개의 제한에 가산됩니다. 언제든지 자격 증명을 삭제하고 다시 생성할 수 있습니다. Visual Studio 내에서 AWS CodeCommit을 사용할 경우 리포지토리를 생성하고 나열하는 등 서비스 자체에 대한 작업에 기존 AWS 보안 인증 정보가 사용됩니다. AWS CodeCommit에 호스팅된 실제 Git 리포지토리로 작업할 경우 Git 자격 증명을 사용합니다.

AWS CodeCommit에 대한 지원의 일환으로 Toolkit for Visual Studio는 이러한 Git 보안 인증 정보를 자동으로 생성 및 관리하며, 해당 보안 인증 정보를 AWS 보안 인증 정보 프로필에 연결합니다. Team Explorer 내에서 Git 작업을 수행하기 위해 현재 올바른 자격 증명 집합을 보유했는지에 대해 걱정할 필요가 없습니다. AWS 보안 인증 정보 프로필을 통해 Team Explorer에 연결하면 Git 원격 작업을 수행할 때마다 연결된 Git 보안 인증 정보가 자동으로 사용됩니다.

에 연결AWS CodeCommit

Visual Studio 2015 이상에서 Team Explorer 창을 열면 Manage Connections(연결 관리)의 Hosted Service Providers(호스팅된 서비스 공급업체)에 AWS CodeCommit 항목이 표시됩니다.

연결 관리의 AWS CodeCommit 항목

가입을 선택하면 브라우저 창에 Amazon Web Services 홈 페이지가 열립니다. 연결을 선택할 때 발생하는 사항은 Amazon Web Services가 AWS 액세스 키 및 비밀 키가 포함된 보안 인증 정보 프로필을 찾고 활성화하여 사용자 대신 AWS에 대한 호출을 수행할 수 있는지 여부에 따라 달라집니다. Toolkit for Visual Studio가 로컬로 저장된 보안 인증 정보를 찾을 수 없는 경우 IDE에 표시되는 새 시작하기 페이지를 사용하여 보안 인증 정보 프로필을 설정할 수도 있습니다. 또는 AWS Tools for Windows PowerShell, AWS CLI를 사용하고, 사용할 Toolkit for Visual Studio에 사용 가능한 AWS 보안 인증 정보 프로필을 사용할 수도 있습니다.

연결을 선택하면 Toolkit for Visual Studio가 연결에서 사용할 보안 인증 정보 프로필 찾기 프로세스를 시작합니다. Toolkit for Visual Studio가 보안 인증 정보 프로필을 찾을 수 없는 경우 AWS 계정 계정에 대한 액세스 키 및 비밀 키를 입력하도록 사용자를 초대하는 대화 상자가 열립니다. 루트 자격 증명이 아닌 IAM 사용자 계정을 사용하는 것이 좋습니다. 또한 이전에 언급한 대로 최종적으로 필요한 Git 자격 증명은 IAM 사용자에 대해서만 생성될 수 있습니다. 액세스 키 및 보안 키가 제공되고 자격 증명 프로파일이 생성되면 Team Explorer와 AWS CodeCommit 간의 연결을 사용할 준비가 되었습니다.

Toolkit for Visual Studio가 둘 이상의 AWS 보안 인증 정보 프로필을 찾은 경우 Team Explorer 내에서 사용할 계정을 선택하라는 메시지가 나타납니다.

AWS 보안 인증 정보 프로필 선택

보안 인증 정보 프로필이 하나만 있는 경우 Toolkit for Visual Studio는 프로필 선택 대화 상자를 우회하고 즉시 연결됩니다.

자격 증명 프로파일을 통해 Team Explorer와 AWS CodeCommit 간의 연결이 설정되면 초대 대화 상자가 닫히고 연결 패널이 표시됩니다.

AWS CodeCommit 연결 패널

로컬로 복제된 리포지토리가 없으므로 패널에는 수행할 수 있는 작업인 Clone(복제), 생성로그아웃만 표시됩니다. 다른 공급자와 마찬가지로 Team Explorer의 AWS CodeCommit은 특정 시점에서 단일 AWS 보안 인증 정보 프로필에만 바인딩될 수 있습니다. 계정을 전환하려면 다른 연결을 사용하여 새 연결을 시작할 수 있도록 로그아웃을 사용하여 연결을 제거합니다.

이제 연결을 설정했으므로 생성 링크를 클릭하여 리포지토리를 생성할 수 있습니다.

리포지토리 생성

생성 링크를 클릭하면 새 AWS CodeCommit 리포지토리 생성 대화 상자가 열립니다.

새 AWS CodeCommit 리포지토리 생성

AWS CodeCommit 리포지토리는 리전에 따라 구성되므로 리전에서 리포지토리를 호스팅할 리전을 선택할 수 있습니다. 목록에는 AWS CodeCommit이 지원되는 모든 리전이 있습니다. 새 리포지토리에 대해 이름(필수) 및 설명(선택 사항)을 제공합니다.

대화 상자의 기본 동작은 새 리포지토리의 폴더 위치에 리포지토리 이름으로 접미사를 지정하는 것입니다(이름을 입력하면 폴더 위치도 업데이트됨). 다른 폴더 이름을 사용하려면 리포지토리 이름 입력을 완료한 후 Clone into(다음으로 복제) 폴더 경로를 편집합니다.

리포지토리에 대한 초기 .gitignore 파일을 자동으로 생성하도록 선택할 수도 있습니다. AWS Toolkit for Visual Studio는 Visual Studio 파일 유형에 대해 내장된 기본값을 제공합니다. 파일이 없거나 리포지토리에 재사용할 사용자 지정 기존 파일을 사용하도록 선택할 수도 있습니다. 목록에서 Use custom(사용자 지정 사용)을 선택하고 사용할 사용자 지정 파일을 탐색합니다.

리포지토리 이름과 위치가 제공된 경우 확인을 클릭하여 리포지토리 생성을 시작할 준비가 되었습니다. Toolkit for Visual Studio에서는 서비스가 리포지토리를 생성한 다음 새 리포지토리를 로컬로 복제하고, 해당 리포지토리를 사용할 경우 .gitignore 파일에 대한 초기 커밋을 추가합니다. 이 시점에서 Git 원격 작업을 시작하므로 이제 Toolkit for Visual Studio는 이전에 설명한 Git 보안 인증 정보에 액세스해야 합니다.

Git 자격 증명 설정

지금까지는 AWS 액세스 키 및 비밀 키를 사용하여 서비스가 리포지토리를 생성하도록 요청했습니다. 이제 Git 자체로 작업하여 실제 복제 작업을 수행해야 합니다. Git는 AWS 액세스 키와 비밀 키를 이해하지 못합니다. 대신 원격 작업과 HTTPS 연결에 사용할 사용자 이름과 암호 자격 증명을 Git에 제공해야 합니다.

Git 자격 증명 설정에 언급된 대로 사용할 Git 자격 증명은 IAM 사용자와 연결되어야 합니다. 루트 자격 증명에 대해서는 해당 자격 증명을 생성할 수 없습니다. 항상 IAM 사용자 액세스 키 및 비밀 키를 포함하고 루트 키를 포함하지 않도록 AWS 보안 인증 정보 프로필을 설정해야 합니다. Toolkit for Visual Studio는 AWS CodeCommit에 대한 Git 보안 인증 정보를 설정하고 해당 보안 인증 정보을 이전에 Team Explorer에 연결하는 데 사용한 AWS 보안 인증 정보 프로필과 연결하려고 시도할 수 있습니다.

새 AWS CodeCommit 리포지토리 생성 대화 상자에서 확인을 선택하고 성공적으로 리포지토리를 생성하면, Toolkit for Visual Studio에서는 Team Explorer에서 연결된 AWS 보안 인증 정보 프로필을 확인하여 AWS CodeCommit에 대한 Git 보안 인증 정보가 있는지 및 프로필과 로컬로 연결되었는지를 확인합니다. 그러한 경우 Toolkit for Visual Studio는 새 리포지토리에 대해 복제 작업을 시작하도록 Team Explorer에 지시합니다. Git 보안 인증 정보를 로컬로 사용할 수 없는 경우 Toolkit for Visual Studio는 Team Explorer에서 연결에 사용된 계정 보안 인증 정보의 유형을 확인합니다. 자격 증명이 권장하는 대로 IAM 사용자를 위한 것일 경우 다음 메시지가 표시됩니다.

Git 자격 증명 생성

자격 증명이 루트 자격 증명인 경우 다음 메시지가 대신 표시됩니다.

AWS CodeCommit 보안 인증 정보와 IAM 사용자 생성

두 경우 모두 Toolkit for Visual Studio가 필요한 Git 보안 인증 정보를 생성하는 작업을 수행합니다. 첫 번째 시나리오에서 생성에 필요한 사항은 IAM 사용자에 대한 Git 자격 증명 집합입니다. 루트 계정을 사용하고 있는 경우 Toolkit for Visual Studio는 먼저 IAM 사용자를 생성한 다음 해당 새 사용자에 대한 Git 보안 인증 정보 생성을 진행합니다. Toolkit for Visual Studio가 새 사용자를 생성해야 하는 경우 해당 새 사용자 계정에 AWS CodeCommit Power User 관리형 정책이 적용됩니다. 이 정책은 AWS CodeCommit에 대해서만 액세스를 허용하며 AWS CodeCommit을 통해 리포지토리 삭제를 제외한 모든 작업을 수행합니다.

자격 증명을 생성 중인 경우 한 번만 볼 수 있습니다. 따라서, Toolkit for Visual Studio에는 계속 진행하기 전에 새로 생성된 보안 인증 정보를 .csv 파일로 저장하라는 메시지가 표시됩니다.

AWS CodeCommit 보안 인증 정보 저장

이는 매우 권장되는 사항으로 안전한 위치에 저장해야 합니다!

Toolkit for Visual Studio가 보안 인증 정보를 자동으로 생성할 수 없는 경우가 있을 수 있습니다. 예를 들어, 이미 AWS CodeCommit에 대한 Git 보안 인증 정보 집합의 최대 수(2개)를 생성했거나 Toolkit for Visual Studio가 작업을 수행할 수 있는 프로그래밍 방식의 권한이 충분하지 않을 수 있습니다(IAM 사용자로 로그인한 경우). 이러한 경우 AWS Management 콘솔에 로그인하여 보안 인증 정보를 관리하거나, 관리자로부터 보안 인증 정보를 받을 수 있습니다. 그런 다음 해당 정보를 Toolkit for Visual Studio에 표시되는 AWS CodeCommit에 대한 Git 보안 인증 정보 대화 상자에 입력할 수 있습니다.

AWS CodeCommit에 대한 Git 보안 인증 정보

이제 Git에 대한 자격 증명을 사용할 수 있으므로 새 리포지토리에 대한 복제 작업이 진행됩니다(Team Explorer 내의 작업에 대한 진행 표시 참조). 기본 .gitignore 파일을 적용하도록 선택한 경우 해당 파일이 '초기 커밋'이라는 설명과 함께 리포지토리에 커밋됩니다.

이걸로 끝이며 Team Explorer 내에서 자격 증명이 설정되고 리포지토리가 생성됩니다. 필수 보안 인증 정보가 마련되면 향후 새 리포지토리를 생성할 때 새 AWS CodeCommit 리포지토리 생성 대화 상자 자체만 표시됩니다.

리포지토리 복제

기존 리포지토리를 복제하려면 Team Explorer의 AWS CodeCommit에 대한 연결 패널로 돌아갑니다. 복제 링크를 클릭하여 AWS CodeCommit 리포지토리 복제 대화 상자를 연 다음 복제할 리포지토리와 디스크에서 리포지토리를 배치할 위치를 선택하세요.

AWS CodeCommit 리포지토리 복제

리전을 선택하면 Toolkit for Visual Studio에서는 해당 리전에서 사용할 수 있는 리포지토리를 검색하고 대화 상자의 가운데 목록 부분에 표시하도록 서비스에 쿼리합니다. 각 리포지토리의 이름과 설명(선택 사항)도 표시됩니다. 리포지토리 이름이나 마지막 수정 날짜를 기준으로 정렬하고 오름차순 또는 내림차순으로 정렬하도록 목록을 재정렬할 수 있습니다.

리포지토리를 선택하면 리포지토리를 복제할 위치를 선택할 수 있습니다. 이 기본값은 Team Explorer에 대해 다른 플러그인에서 사용된 동일한 리포지토리 위치이지만 다른 위치를 찾거나 입력할 수 있습니다. 기본적으로 리포지토리 이름이 선택한 경로에 접미사로 추가됩니다. 그러나 특정 경로를 원하는 경우 폴더를 선택한 다음 텍스트를 편집하면 됩니다. 상자에 있는 텍스트가 무엇이든지 간에 확인을 클릭하면 복제된 리포지토리가 있는 폴더가 됩니다.

리포지토리와 폴더 위치를 선택한 다음 확인을 클릭하여 복제 작업으로 진행합니다. 리포지토리 생성과 마찬가지로 Team Explorer에 보고된 복제 작업의 진행을 볼 수 있습니다.

리포지토리 작업

리포지토리를 복제하거나 생성할 때 연결에 대한 로컬 리포지토리가 Team Explorer의 연결 패널에 있는 작업 링크 아래에 나열됩니다. 이러한 항목은 콘텐츠를 찾아보기 위해 리포지토리에 편리하게 액세스할 수 있는 방법을 제공합니다. 리포지토리를 마우스 오른쪽 버튼으로 클릭하고 Browse in Console(콘솔에서 찾아보기)을 클릭하면 됩니다.

콘솔에서 찾아보기

Update Git Credentials(Git 자격 증명 업데이트)를 사용하여 자격 증명 프로파일과 연결된 저장된 Git 자격 증명을 업데이트할 수도 있습니다. 이는 자격 증명을 교체한 경우 유용합니다. 이 명령은 새 보안 인증 정보를 입력하거나 가져올 수 있는 AWS CodeCommit에 대한 Git 보안 인증 정보 대화 상자를 엽니다.

리포지토리에 대한 Git 작업은 예상대로 작동합니다. 로컬 커밋을 만들고 공유할 준비가 된 경우 Team Explorer에서 [Sync] 옵션을 사용할 수 있습니다. Git 보안 인증 정보가 이미 로컬로 저장되고 연결된 AWS 보안 인증 정보 프로필과 연결되었으므로 AWS CodeCommit 원격 작업에 대해 보안 인증 정보를 다시 제공하라는 메시지가 표시되지 않습니다.