AWS CodeArtifact 인증 및 토큰 - CodeArtifact

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

AWS CodeArtifact 인증 및 토큰

CodeArtifact 에서는 사용자가 패키지 버전을 게시하거나 사용하기 위해 서비스로 인증하도록 요구합니다. AWS 자격 증명을 사용하여 권한 부여 토큰을 생성하여 CodeArtifact 서비스에 인증해야 합니다. 인증 토큰을 생성하려면 올바른 권한이 있어야 합니다. 인증 토큰을 만드는 데 필요한 권한은 AWS CodeArtifact 사용 권한 참조GetAuthorizationToken 항목을 참조하세요. CodeArtifact 권한에 대한 자세한 내용은 섹션을 참조하세요에서 를 AWS CodeArtifact 사용하는 방법 IAM.

에서 권한 부여 토큰을 가져오려면 를 호출 CodeArtifact해야 합니다GetAuthorizationToken API. 를 사용하여 login 또는 get-authorization-token 명령을 GetAuthorizationToken 사용하여 를 호출 AWS CLI할 수 있습니다.

참고

루트 사용자는 GetAuthorizationToken를 호출할 수 없습니다.

  • aws codeartifact login: 이 명령을 사용하면 단일 단계에서 사용할 공통 패키지 관리자를 쉽게 구성할 수 CodeArtifact 있습니다. 호출은 를 사용하여 토큰을 login 가져오GetAuthorizationToken고 토큰 및 올바른 CodeArtifact 리포지토리 엔드포인트를 사용하여 패키지 관리자를 구성합니다. 지원 패키지 관리자는 다음과 같습니다.

    • dotnet

    • npm

    • 너겟

    • pip

    • 스위프트

    • 트위닝

  • aws codeartifact get-authorization-token: login에서 지원하지 않는 패키지 관리자의 경우, 직접 get-authorization-token을 호출한 다음 필요에 따라 토큰을 사용하여 패키지 관리자를 구성할 수 있습니다(예: 구성 파일에 추가하거나 환경 변수에 저장).

CodeArtifact 권한 부여 토큰은 기본 기간인 12시간 동안 유효합니다. 토큰의 수명은 15분에서 12시간 사이로 구성할 수 있습니다. 수명이 만료되면 다른 토큰을 가져와야 합니다. 토큰 수명은 login 또는 get-authorization-token 호출 이후에 시작됩니다.

역할을 수임하는 동안 login 또는 get-authorization-token 를 호출하는 경우 값을 --duration-seconds~0로 설정하여 토큰의 수명을 역할의 세션 지속 기간 중 남은 시간과 같게 구성할 수 있습니다. 그렇지 않으면 토큰 수명은 역할의 최대 세션 지속 기간과 무관합니다. 예를 들어 를 호출sts assume-role하고 세션 지속 시간을 15분으로 지정한 다음 를 호출login하여 CodeArtifact 권한 부여 토큰을 가져오라고 가정해 보겠습니다. 이 경우 토큰은 세션 지속 기간인 15분보다 길더라도 전체 12시간 동안 유효합니다. 세션 기간 제어에 대한 자세한 내용은 IAM 사용 설명서 IAM 역할 사용을 참조하세요.

login 명령으로 생성된 토큰

aws codeartifact login 명령은 를 사용하여 토큰을 가져오GetAuthorizationToken고 토큰 및 올바른 CodeArtifact 리포지토리 엔드포인트를 사용하여 패키지 관리자를 구성합니다.

다음 표는 login 명령의 파라미터를 설명합니다.

파라미터 필수 설명

--tool

인증할 패키지 관리자입니다. 가능한 값은 dotnet, npm, nuget, pip, swift 입니다twine.

--domain

리포지토리가 속한 도메인 이름입니다.

--domain-owner

아니요

도메인 소유자의 ID입니다. 이 파라미터는 인증되지 않은 AWS 계정이 소유한 도메인에 액세스하는 경우 필요합니다. 자세한 내용은 크로스 계정 도메인 단원을 참조하십시오.

--repository

인증할 리포지토리의 이름입니다.

--duration-seconds

아니요

로그인 정보가 유효한 시간(초)입니다. 최솟값은 900*이고 최댓값은 43200입니다.

--namespace

아니요

네임스페이스를 리포지토리 도구와 연결합니다.

--dry-run

아니요

구성을 변경하지 않고 도구를 리포지토리에 연결하기 위해 실행되는 명령만 출력합니다.

*0 값은 역할을 수임한 상태에서 login을 호출할 때도 유효합니다. --duration-seconds 0를 사용하여 login을 호출하면 수임된 역할의 남은 세션 지속 기간과 동일한 수명을 가진 토큰이 생성됩니다.

다음 예제에서는 login 명령으로 인증 토큰을 가져오는 방법을 보여줍니다.

aws codeartifact login \ --tool dotnet | npm | nuget | pip | swift | twine \ --domain my_domain \ --domain-owner 111122223333 \ --repository my_repo

npm과 함께 login 명령을 사용하는 방법에 대한 구체적인 지침은 npm을 다음과 같이 구성하고 사용하십시오. CodeArtifact 섹션을 참조하세요. Python의 경우 CodeArtifact를 Python과 함께 사용 섹션을 참조하세요.

를 호출하는 데 필요한 권한 GetAuthorizationToken API

를 호출 CodeArtifact GetAuthorizationToken하려면 sts:GetServiceBearerTokencodeartifact:GetAuthorizationToken 권한이 모두 필요합니다API.

CodeArtifact 리포지토리와 함께 패키지 관리자를 사용하려면 IAM 사용자 또는 역할이 를 허용해야 합니다sts:GetServiceBearerToken. 를 CodeArtifact 도메인 리소스 정책에 추가할 sts:GetServiceBearerToken 수 있지만 해당 정책에는 권한이 적용되지 않습니다.

로 생성된 토큰 GetAuthorizationToken API

를 호출get-authorization-token하여 에서 권한 부여 토큰을 가져올 수 있습니다 CodeArtifact.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text

--duration-seconds 인수를 사용하여 토큰의 유효 기간을 변경할 수 있습니다. 최솟값은 900이고 최댓값은 43200입니다. 다음 예제에서는 1시간(3,600초) 동안 지속되는 토큰을 생성합니다.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 3600

역할을 수임하면서 get-authorization-token을 호출하는 경우 토큰 수명은 역할의 최대 세션 기간과 무관합니다. --duration-seconds 값을 0으로 설정하여 위임된 역할의 세션 기간이 만료될 때 토큰이 만료되도록 구성할 수 있습니다.

aws codeartifact get-authorization-token \ --domain my_domain \ --domain-owner 111122223333 \ --query authorizationToken \ --output text \ --duration-seconds 0

자세한 내용은 다음 설명서를 참조하세요.

환경 변수를 사용하여 인증 토큰 전달

AWS CodeArtifact 는 에서 벤딩한 권한 부여 토큰GetAuthorizationTokenAPI을 사용하여 Maven 및 Gradle과 같은 빌드 도구의 요청을 인증하고 승인합니다. 이러한 인증 토큰에 대한 자세한 내용은 로 생성된 토큰 GetAuthorizationToken API 섹션을 참조하세요.

빌드 도구로 읽을 수 있는 환경 변수에 이러한 인증 토큰을 저장하여 CodeArtifact 리포지토리에서 패키지를 가져오거나 패키지를 게시하는 데 필요한 토큰을 얻을 수 있습니다.

보안상의 이유로 이 접근 방식은 다른 사용자나 프로세스가 토큰을 읽거나 실수로 소스 제어에 체크인할 수 있는 파일에 토큰을 저장하는 것보다 좋습니다.

  1. 에 설명된 대로 AWS 자격 증명을 구성합니다설치 또는 업그레이드 후 AWS CLI구성하기.

  2. CODEARTIFACT_AUTH_TOKEN 환경 변수를 설정합니다.

    참고

    일부 시나리오에서는 --domain-owner 인수를 포함하지 않아도 됩니다. 자세한 내용은 크로스 계정 도메인 단원을 참조하십시오.

    • macOS 또는 Linux:

      export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text`
    • Windows(기본 명령 쉘 사용):

      for /f %i in ('aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i
    • Windows PowerShell:

      $env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domain my_domain --domain-owner 111122223333 --query authorizationToken --output text

CodeArtifact 권한 부여 토큰 취소

인증된 사용자가 CodeArtifact 리소스에 액세스하기 위한 토큰을 생성하면 해당 토큰은 사용자 지정 액세스 기간이 끝날 때까지 지속됩니다. 기본 액세스 기간은 12시간입니다. 액세스 기간이 만료되기 전에 토큰에 대한 액세스를 취소해야 하는 경우도 있습니다. 다음 지침에 따라 CodeArtifact 리소스에 대한 액세스를 취소할 수 있습니다.

역할 또는 페더레이션 사용자 액세스 등 임시 보안 자격 증명을 사용하여 액세스 토큰을 생성한 경우, 정책을 업데이트IAM하여 액세스를 거부하여 액세스를 취소할 수 있습니다. 자세한 내용은 IAM 사용 설명서임시 보안 자격 증명에 대한 권한 비활성화를 참조하세요.

장기 IAM 사용자 자격 증명을 사용하여 액세스 토큰을 생성한 경우 사용자의 정책을 수정하여 액세스를 거부하거나 IAM 사용자를 삭제해야 합니다. 자세한 내용은 IAM 사용자 권한 변경 또는 IAM 사용자 삭제를 참조하세요.