자격 증명 도우미 및 HTTPS 연결 문제 해결 AWS CodeCommit - AWS CodeCommit

AWS CodeCommit 는 더 이상 신규 고객이 사용할 수 없습니다. AWS CodeCommit 의 기존 고객은 정상적으로 서비스를 계속 이용할 수 있습니다. 자세히 알아보기

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

자격 증명 도우미 및 HTTPS 연결 문제 해결 AWS CodeCommit

다음 정보는 AWS CLI 및 에 포함된 자격 증명 도우미를 사용하여 리포지토리에 연결할 때 발생하는 일반적인 문제를 해결하는 데 도움이 될 HTTPS 수 있습니다. CodeCommit

참고

페더레이션 액세스, ID 공급자 또는 임시 자격 증명을 CodeCommit 사용하여 연결할 때는 자격 증명 도우미가 지원되지만 유틸리티를 설치하여 사용하는 것이 좋습니다. git-remote-codecommit 자세한 내용은 HTTPS AWS CodeCommit 를 사용하여에 대한 git-remote-codecommit 연결 설정 단계 단원을 참조하십시오.

보안 인증 도우미를 구성하는 git config 명령을 실행할 때 오류가 발생합니다.

문제: git config 명령을 실행하여 CodeCommit 저장소와 통신하도록 자격 증명 도우미를 구성하려고 하면 인수가 너무 적다는 오류 또는 Git config 명령 및 구문을 제안하는 사용 프롬프트가 표시됩니다.

가능한 해결 방법: 이 오류가 발생하는 가장 일반적인 이유는 Windows 운영 체제의 명령어에 작은따옴표가 사용되거나 Linux, macOS, Unix 운영 체제의 명령어에 큰따옴표가 사용되기 때문입니다. 정확한 구문은 다음과 같습니다.

  • Windows: git config --global credential.helper "!aws codecommit credential-helper $@"

  • Linux, macOS, Unix: git config --global credential.helper '!aws codecommit credential-helper $@'

리포지토리를 복제하려고 할 때 사용자 이름을 읽는 중 오류가 발생합니다.

문제: 자격 증명 도우미를 사용하여 저장소를 복제하려고 하면 시스템에서 저장소의 사용자 이름을 읽을 수 없다는 오류 메시지가 표시됩니다. URL

가능한 해결 방법: 이 오류가 발생하는 가장 일반적인 이유는 컴퓨터에서.gitconfig 파일을 올바르게 만들거나 구성하지 않았기 때문입니다. .gitconfig 파일을 열고 자격 증명 도우미가 올바르게 설정되었는지 확인하십시오. Linux, macOS 또는 Unix를 실행하는 컴퓨터를 사용하는 경우 시스템의 값도 올바르게 $HOME 설정되어 있는지 확인하십시오.

보안 인증 도우미를 사용할 때 Windows에서 명령을 찾을 수 없음 오류가 발생합니다.

문제: 를 업데이트한 후 AWS CLI 저장소에 대한 자격 증명 도우미 연결이 실패합니다 CodeCommit . aws codecommit credential-helper $@ get: aws: command not found

원인: 이 오류가 발생하는 가장 일반적인 이유는 AWS CLI 버전이 Python 3을 사용하는 버전으로 업데이트되었기 때문입니다. MSI패키지에 알려진 문제가 있습니다. 영향받는 버전 중 하나가 있는지 확인하려면, 명령줄을 열고 aws --version 명령을 실행합니다.

결과 Python 버전이 3으로 시작한다면, 영향을 받은 버전이 있는 것입니다. 예:

aws-cli/1.16.62 Python/3.6.2 Darwin/16.7.0 botocore/1.12.52

수정 방법: 다음 중 하나를 수해하여 이러한 문제를 해결할 수 있습니다.

  • 대신 Python과 pip를 사용하여 AWS CLI 윈도우에 설치하고 구성합니다. MSI 자세한 내용은 AWS CLI 윈도우에 Python, pip, 및 를 설치하기 항목을 참조하십시오.

  • .gitconfig 파일을 수동으로 편집함으로써 [credential] 섹션을 변경하여 로컬 컴퓨터에서 aws.cmd를 명시적으로 가리킵니다. 예:

    [credential] helper = !"\C:\\Program Files\\Amazon\\AWSCLI\\bin\\aws.cmd\" codecommit credential-helper $@ UseHttpPath = true
  • git config명령을 실행하여 명시적으로 aws.cmd 참조하도록 .gitconfig 파일을 업데이트하고 필요에 따라 명령 경로를 포함하도록 PATH 환경 변수를 수동으로 업데이트합니다. 예:

    git config --global credential.helper "!aws.cmd codecommit credential-helper $@" git config --global credential.UseHttpPath true

리포지토리에 연결할 때 사용자 이름을 입력하라는 메시지가 표시됩니다. CodeCommit

문제: 자격 증명 도우미를 사용하여 CodeCommit 저장소와 통신하려고 하면 사용자 이름을 입력하라는 메시지가 나타납니다.

가능한 해결 방법: AWS 프로필을 구성하거나 사용 중인 프로필이 작업용으로 구성한 프로필인지 확인하십시오. CodeCommit 설정에 대한 자세한 내용은 AWS CLI 보안 인증 도우미를 사용하여 Linux, macOS, Unix에서 AWS CodeCommit 리포지토리에 대한 HTTPS 연결을 설정하는 단계 또는 AWS CLI 보안 인증 도우미를 사용하여 Windows에서 AWS CodeCommit 리포지토리에 대한 HTTPS 연결 설정 단계 단원을 참조하세요. 액세스 키 및 비밀 키에 대한 IAM 자세한 내용은 IAM사용자의 액세스 키 관리자격 증명을 얻으려면 어떻게 해야 합니까? 를 참조하십시오.

macOS용 Git: 보안 인증 도우미를 성공적으로 구성했지만 현재 내 리포지토리에 액세스가 거부되었습니다(403).

문제: macOS에서 보안 인증 도우미가 예상대로 보안 인증 정보를 사용 또는 액세스하지 않은 것 같습니다. 이는 다음과 같은 두 가지 문제로 인해 발생할 수 있습니다.

  • 저장소가 있는 곳과 AWS 리전 다르게 구성되어 있습니다. AWS CLI

  • Keychain Access 유틸리티가 만료된 보안 인증 정보를 저장했습니다.

가능한 해결 방법: 올바른 지역에 맞게 AWS CLI 구성되었는지 확인하려면 aws configure 명령을 실행하고 표시된 정보를 검토하십시오. CodeCommit저장소가 에 표시된 AWS 리전 것과 다른 경우 aws configure 명령을 실행하고 값을 해당 지역에 적합한 값으로 변경해야 합니다. AWS CLI자세한 내용은 1단계: CodeCommit에 대한 초기 구성 단원을 참조하십시오.

OS X 및 macOS에 출시된 Git의 기본 버전은 Keychain Access 유틸리티를 사용하여 생성된 보안 인증 정보를 저장합니다. 보안상의 이유로 CodeCommit 리포지토리에 액세스하기 위해 생성된 비밀번호는 임시적이므로 키체인에 저장된 자격 증명은 약 15분 후에 작동을 멈춥니다. 를 통해서만 Git에 액세스하는 CodeCommit 경우 다음을 시도해 보세요.

  1. 터미널에서 git config 명령을 실행하여 Keychain Access 유틸리티가 정의된 Git 구성 파일(gitconfig)을 찾습니다. 로컬 시스템과 기본 설정에 따라서 gitconfig 파일을 하나 이상 가질 수 있습니다.

    git config -l --show-origin | grep credential

    이 명령의 출력에서 다음과 유사한 결과를 검색합니다.

    file:/path/to/gitconfig credential.helper=osxkeychain

    이 줄의 시작 부분에 나열된 파일이 편집 대상인 Git 구성 파일입니다.

  2. Git 구성 파일을 편집하려면 평문 편집기를 사용하거나 다음 명령을 실행합니다.

    nano /usr/local/git/etc/gitconfig
  3. 다음 전략 중 하나를 사용하여 구성을 수정합니다.

    • helper = osxkeychain을 포함하는 보안 인증 정보 섹션을 주석 처리하거나 삭제합니다. 예:

      # helper = osxkeychain
    • 컨텍스트가 포함되도록 aws credential helperosxkeychain 보안 인증 도우미를 모두 업데이트합니다. 예를 들어 다음을 osxkeychain 인증하는 데 사용됩니다. GitHub

      [credential "https://git-codecommit.us-east-1.amazonaws\.com"] helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true [credential "https://github.com"] helper = osxkeychain

      이 구성에서 Git은 원격 호스트가 ‘https://github.com’과 일치하면 osxkeychain 도우미를 사용하고 원격 호스트가 ‘https://git-codecommit\.us-east-1\.amazonaws.com’과 일치하면 보안 인증 도우미를 사용합니다.

    • 보안 인증 도우미 앞에 빈 문자열 도우미를 포함시킵니다. 예를 들어 이름이 지정된 프로필을 사용할 때 osxkeychain 도우미를 사용하지 않으려면 CodeCommitProfile 다음과 CLI 함께:

      [credential] helper = helper = !aws --profile CodeCommitProfile codecommit credential-helper $@ UseHttpPath = true
      작은 정보

      모든 프로필을 제외하려는 CodeCommit 경우 빈 문자열 도우미 줄 뒤에 오는 줄이 일치하지 않도록 구성할 수도 있습니다.

      helper = !aws codecommit credential-helper $@

    Keychain Access 유틸리티를 계속 이용해 다른 Git 리포지토리의 보안 인증 정보를 캐시하고 싶다면, 명령줄을 코멘트 아웃하는 대신 헤더를 수정해야 합니다. 예를 들어 캐시된 자격 증명을 허용하려면 다음과 같이 헤더를 수정할 수 있습니다. GitHub

    [credential "https://github.com"] helper = osxkeychain

Git으로 다른 리포지토리에 액세스하는 경우 리포지토리에 대한 자격 증명을 제공하지 않도록 Keychain Access 유틸리티를 구성할 수 있습니다. CodeCommit Keychain Access 유틸리티를 구성하려면 다음을 수행합니다.

  1. Keychain Access 유틸리티를 실행합니다. (Finder를 사용하여 이 유틸리티를 찾을 수 있습니다.)

  2. 검색 및 바꾸기 git-codecommit.us-east-2.amazonaws.com us-east-2 리포지토리가 AWS 리전 있는 곳으로. 행을 강조 표시하고 마우스 오른쪽 버튼을 클릭하여 컨텍스트 메뉴를 연 다음 정보 가져오기를 선택합니다.

  3. 액세스 제어 탭을 선택합니다.

  4. 액세스 허용 전 확인에서 git-credential-osxkeychain을 선택한 후 마이너스 기호를 선택하여 목록에서 제거합니다.

    참고

    목록에서 git-credential-osxkeychain을 제거하면 Git 명령을 실행할 때마다 대화 상자가 나타납니다. 거부를 선택하여 계속 진행합니다. 팝업이 너무 많이 나타나는 경우 다음과 같이 몇 가지 대체 옵션이 있습니다.

Git이 Keychain Access 유틸리티를 아예 사용하지 못하도록 하려면 보안 인증 도우미로 'osxkeychain'을 사용하지 않도록 Git을 구성할 수 있습니다. 예를 들어 터미널을 열고 git config --system credential.helper 명령을 실행해 osxkeychain이 반환되면 Keychain Access 유틸리티를 사용하도록 Git가 설정됩니다. 다음 명령을 실행하여 이를 변경할 수 있습니다.

git config --system --unset credential.helper

이 명령을 --system 옵션과 함께 실행하면 시스템 전체에 걸쳐 모든 사용자의 Git 동작이 변경되므로 다른 사용자나 다른 리포지토리 서비스를 추가로 사용하는 경우 다른 리포지토리에 의도하지 않은 결과가 발생할 수 있습니다. CodeCommit 또한 이 방법은 sudo 사용이 필요할 수 있으며, 이 변경을 적용하기에 충분한 권한이 계정에 없을 수 있다는 점에 유의하세요. git config --system credential.helper 명령을 다시 실행하여 명령이 성공적으로 적용되었는지 확인하십시오. 자세한 내용은 Git 사용자 지정 - Git 구성스택 오버플로우에 대한 이 기사를 참조하세요.

Windows용 Git: Windows용 Git을 설치했지만 내 리포지토리에 액세스가 거부되었습니다(403).

문제: Windows에서 보안 인증 도우미가 필요한 보안 인증 정보를 사용 또는 액세스하지 않은 것 같습니다. 이는 다음과 같은 다른 문제로 인해 발생할 수 있습니다.

  • AWS CLI 는 리포지토리가 있는 AWS 리전 리포지토리와 다르게 구성되어 있습니다.

  • Windows용 Git은 기본적으로 자격 증명 도우미를 사용하는 CodeCommit 연결과 호환되지 않는 Git 자격 증명 관리자 유틸리티를 설치합니다. AWS 설치 시 자격 증명 도우미를 와 함께 설치하고 연결하도록 구성했는데도 저장소에 대한 연결이 실패합니다. AWS CLI CodeCommit

  • Windows용 Git의 일부 버전은 RFC2617RFC4559를 완전히 준수하지 않을 수 있으며, 이로 인해 Git 자격 증명과 에 포함된 자격 증명 도우미 모두에 문제가 발생할 수 있습니다. AWS CLI자세한 내용은 Version 2.11.0(3) does not ask for username/password를 참조하세요.

수정 방법:

  • 에 포함된 자격 증명 도우미를 사용하려는 경우 자격 증명 도우미를 사용하는 HTTPS 대신 Git 자격 증명을 사용하여 연결하는 것이 좋습니다. AWS CLI IAM사용자를 위해 구성된 Git 자격 증명은 Windows용 Git 자격 증명 관리자와 호환되지만 의 자격 증명 도우미와는 다릅니다. AWS CodeCommit자세한 내용은 Git 보안 인증 정보를 사용하는 HTTPS 사용자의 경우 단원을 참조하십시오.

    자격 증명 도우미를 사용하려면 aws configure 명령을 실행하고 표시된 정보를 검토하여 자격 증명 도우미가 올바르게 AWS CLI AWS 리전구성되었는지 확인하십시오. 에 표시된 CodeCommit 저장소와 AWS 리전 다른 저장소에 있는 경우 aws configure 명령을 실행하고 값을 해당 지역에 적합한 값으로 변경해야 합니다. AWS CLI자세한 내용은 1단계: CodeCommit에 대한 초기 구성 단원을 참조하십시오.

  • 가능한 경우 Windows용 Git을 제거하고 다시 설치합니다. Windows용 Git을 설치할 때 Git Credential Manager 유틸리티 설치 옵션의 확인란 선택을 취소합니다. 이 보안 인증 정보 관리자는 AWS CodeCommit의 보안 인증 도우미와 호환되지 않습니다. Git Credential Manager 또는 다른 자격 증명 관리 유틸리티를 설치했지만 제거하지 않으려면 .gitconfig 파일을 수정하고 다음에 대한 자격 증명 관리를 추가할 수 있습니다. CodeCommit

    1. 제어판을 열고 자격 증명 관리자를 선택한 다음 에 대해 저장된 자격 증명을 제거합니다. CodeCommit

    2. 메모장과 같은 평문 편집기에서 .gitconfig 파일을 엽니다.

      참고

      여러 Git 프로필을 사용하는 경우 로컬 및 글로벌 .gitconfig 파일을 둘 다 가질 수 있습니다. 적합한 파일을 편집해야 합니다.

    3. 다음 섹션을 .gitconfig 파일에 추가합니다.

      [credential "https://git-codecommit.*.amazonaws.com"] helper = !aws codecommit credential-helper $@ UseHttpPath = true
    4. 파일을 저장한 다음 새 명령줄 세션을 연 후 연결을 다시 시도합니다.

    리포지토리에 연결할 때는 자격 증명 도우미를 사용하고 리포지토리와 같은 호스팅된 다른 CodeCommit 리포지토리에 연결할 AWS CodeCommit 때는 다른 자격 증명 관리 시스템을 사용하려는 경우에도 이 방법을 사용할 수 있습니다. GitHub

    보안 인증 도우미가 기본값으로 사용되도록 재설정하려면 git config 명령을 실행할 때 --global 또는 --local 대신 --system 옵션을 사용할 수 있습니다.

  • Windows 컴퓨터에서 Git 자격 증명을 사용하는 경우 Git 자격 증명 사용자 이름을 연결 문자열의 일부로 포함하여 규정 RFC 미준수 문제를 해결할 수 있습니다. 예를 들어, 이 문제를 해결하고 이름이 지정된 저장소를 복제하려면 MyDemoRepo 미국 동부 (오하이오) 지역:

    git clone https://Your-Git-Credential-Username@git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo my-demo-repo
    참고

    Git 보안 인증 정보 사용자 이름에 @ 문자가 있는 경우, 이 방법은 효과가 없습니다. 문자를 URL -인코딩 (URL이스케이프 또는 퍼센트 인코딩이라고도 함) 해야 합니다.