AWS CodeArtifact 인증 및 토큰
CodeArtifact에서 패키지 버전을 게시하거나 사용하려면 서비스에 인증해야 합니다. AWS 보안 인증을 사용하고 인증 토큰을 생성하여 CodeArtifact 서비스에 인증해야 합니다. 인증 토큰을 생성하려면 올바른 권한이 있어야 합니다. 인증 토큰을 만드는 데 필요한 권한은 AWS CodeArtifact 권한 참조의 GetAuthorizationToken 항목을 참조하세요. CodeArtifact 권한에 대한 일반적인 내용은 AWS CodeArtifact에서 IAM을 사용하는 방식 섹션을 참조하세요.
CodeArtifact에서 인증 토큰을 가져오려면 GetAuthorizationToken API를 호출해야 합니다. AWS CLI를 사용하면 login 또는 get-authorization-token 명령으로 GetAuthorizationToken를 호출할 수 있습니다.
참고
루트 사용자는 GetAuthorizationToken을 호출할 수 없습니다.
aws codeartifact login: 이 명령을 사용하면 CodeArtifact를 단일 단계에서 사용하도록 일반 패키지 관리자를 쉽게 구성할 수 있습니다.login을 호출하면GetAuthorizationToken포함 토큰을 가져오고 해당 토큰과 올바른 CodeArtifact 리포지토리 엔드포인트를 사용하여 패키지 관리자를 구성합니다. 지원 패키지 관리자는 다음과 같습니다.dotnet
npm
nuget
pip
swift
twine
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분으로 지정한 다음 CodeArtifact 인증 토큰을 가져오기 위해 login을 호출한다고 가정해 보겠습니다. 이 경우 토큰은 세션 지속 기간인 15분보다 길더라도 전체 12시간 동안 유효합니다. 세션 지속 기간 제어에 대한 자세한 내용은 IAM 사용 설명서의 IAM 역할 사용을 참조하세요.
login 명령으로 생성된 토큰
aws codeartifact login 명령은 GetAuthorizationToken 포함 토큰을 가져오고 해당 토큰과 올바른 CodeArtifact 리포지토리 엔드포인트를 사용하여 패키지 관리자를 구성합니다.
다음 표는 login 명령의 파라미터를 설명합니다.
| 파라미터 | 필수 | 설명 |
|---|---|---|
|
예 |
인증할 패키지 관리자입니다. 가능한 값은 |
|
예 |
리포지토리가 속한 도메인 이름입니다. |
|
아니요 |
도메인 소유자의 ID입니다. 이 파라미터는 인증되지 않은 AWS 계정이 소유한 도메인에 액세스하는 경우 필요합니다. 자세한 내용은 크로스 계정 도메인 섹션을 참조하세요. |
|
예 |
인증할 리포지토리의 이름입니다. |
|
아니요 |
로그인 정보가 유효한 시간(초)입니다. 최솟값은 900*이고 최댓값은 43200입니다. |
|
아니요 |
네임스페이스를 리포지토리 도구와 연결합니다. |
|
아니요 |
구성을 변경하지 않고 도구를 리포지토리에 연결하기 위해 실행되는 명령만 출력합니다. |
*0 값은 역할을 수임한 상태에서 |
||
다음 예제에서는 login 명령으로 인증 토큰을 가져오는 방법을 보여줍니다.
aws codeartifact login \ --tooldotnet | npm | nuget | pip | swift | twine\ --domainmy_domain\ --domain-owner111122223333\ --repositorymy_repo
npm과 함께 login 명령을 사용하는 방법에 대한 구체적인 지침은 CodeArtifact로 npm 구성 및 사용 섹션을 참조하세요. Python의 경우 CodeArtifact를 Python과 함께 사용 섹션을 참조하세요.
GetAuthorizationToken API를 호출하려면 권한이 필요합니다.
CodeArtifact GetAuthorizationToken API를 호출하려면 sts:GetServiceBearerToken 및 codeartifact:GetAuthorizationToken 권한이 모두 필요합니다.
CodeArtifact 리포지토리와 함께 패키지 관리자를 사용하려면 IAM 사용자 또는 역할이 sts:GetServiceBearerToken을 허용해야 합니다. sts:GetServiceBearerToken을 CodeArtifact 도메인 리소스 정책에 추가할 수 있지만 권한이 해당 정책에 영향을 주지는 않습니다.
GetAuthorizationToken API로 생성된 토큰
CodeArtifact에서 인증 토큰을 가져오기 위해 get-authorization-token를 호출할 수 있습니다.
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text
--duration-seconds 인수를 사용하여 토큰의 유효 기간을 변경할 수 있습니다. 최솟값은 900이고 최댓값은 43200입니다. 다음 예제에서는 1시간(3,600초) 동안 지속되는 토큰을 생성합니다.
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds3600
역할을 수임하면서 get-authorization-token을 호출하는 경우 토큰 수명은 역할의 최대 세션 기간과 무관합니다. --duration-seconds 값을 0으로 설정하여 위임된 역할의 세션 기간이 만료될 때 토큰이 만료되도록 구성할 수 있습니다.
aws codeartifact get-authorization-token \ --domainmy_domain\ --domain-owner111122223333\ --query authorizationToken \ --output text \ --duration-seconds0
자세한 내용은 다음 설명서를 참조하세요.
-
토큰 및 환경 변수에 대한 지침은 환경 변수를 사용하여 인증 토큰 전달 섹션을 참조하세요.
-
Python 사용자의 경우 로그인 명령 없이 pip를 구성하려면 또는 CodeArtifact로 twine 구성 및 사용 섹션을 참조하세요.
-
Maven 사용자의 경우 Gradle과 함께 CodeArtifact 사용 또는 mvn과 함께 CodeArtifact 사용 섹션을 참조하세요.
-
npm 사용자의 경우 로그인 명령을 실행하지 않고 npm 구성하기 섹션을 참조하세요.
환경 변수를 사용하여 인증 토큰 전달
AWS CodeArtifact는 GetAuthorizationToken API에서 제공하는 인증 토큰을 사용하여 Maven 및 Gradle과 같은 빌드 도구의 요청을 인증하고 권한을 부여합니다. 이러한 인증 토큰에 대한 자세한 내용은 GetAuthorizationToken API로 생성된 토큰 섹션을 참조하세요.
CodeArtifact 리포지토리에서 패키지를 가져오거나 패키지를 게시하는 데 필요한 토큰을 얻기 위해 빌드 도구가 읽을 수 있는 환경 변수에 이러한 인증 토큰을 저장할 수 있습니다.
보안상의 이유로 이 접근 방식은 다른 사용자나 프로세스가 토큰을 읽거나 실수로 소스 제어에 체크인할 수 있는 파일에 토큰을 저장하는 것보다 좋습니다.
-
설치 또는 업그레이드 후 AWS CLI 구성하기에 설명된 대로 AWS 보안 인증을 구성합니다.
-
CODEARTIFACT_AUTH_TOKEN환경 변수를 설정합니다.참고
일부 시나리오에서는
--domain-owner인수를 포함하지 않아도 됩니다. 자세한 내용은 크로스 계정 도메인 섹션을 참조하세요.-
macOS 또는 Linux:
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text` -
Windows(기본 명령 쉘 사용):
for /f %i in ('aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text') do set CODEARTIFACT_AUTH_TOKEN=%i -
Windows PowerShell:
$env:CODEARTIFACT_AUTH_TOKEN = aws codeartifact get-authorization-token --domainmy_domain--domain-owner111122223333--query authorizationToken --output text
-
CodeArtifact 인증 토큰 취소
인증된 사용자가 CodeArtifact 리소스에 액세스하기 위한 토큰을 생성하면 해당 토큰은 사용자 지정 가능한 액세스 기간이 종료될 때까지 지속됩니다. 기본 액세스 기간은 12시간입니다. 액세스 기간이 만료되기 전에 토큰에 대한 액세스를 취소해야 하는 경우도 있습니다. 다음 지침에 따라 CodeArtifact 리소스에 대한 액세스 권한을 취소할 수 있습니다.
수임한 역할 또는 페더레이션 사용자 액세스와 같은 임시 보안 자격 증명을 사용하여 액세스 토큰을 생성한 경우 액세스를 거부하도록 IAM 정책을 업데이트하여 액세스를 취소할 수 있습니다. 자세한 내용은 IAM 사용 설명서의 임시 보안 자격 증명에 대한 권한 비활성화를 참조하세요.
장기 IAM 사용자 보안 인증을 사용하여 액세스 토큰을 생성한 경우 액세스를 거부하도록 사용자 정책을 수정하거나 IAM 사용자를 삭제해야 합니다. 자세한 정보는 IAM 사용자의 권한 변경 또는 IAM 사용자 삭제를 참조하세요.