翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWS CodeArtifact 認証とトークン
CodeArtifact では、パッケージバージョンを発行または使用するために、ユーザーが サービスで認証する必要があります。 AWS 認証情報を使用して認証トークンを作成して、 CodeArtifact サービスに対して認証する必要があります。認可トークンを作成するには、適切なアクセス権限を持っている必要があります。認証トークンの作成に必要なアクセス許可については、 のGetAuthorizationToken
エントリを参照してくださいAWS CodeArtifact アクセス許可リファレンス。アクセス CodeArtifact 許可の詳細については、「」を参照してくださいの AWS CodeArtifact 仕組み IAM。
から認証トークンを取得するには CodeArtifact、 を呼び出す必要がありますGetAuthorizationToken API。を使用すると AWS CLI、 login
または get-authorization-token
コマンドGetAuthorizationToken
を使用して を呼び出すことができます。
注記
ルートユーザーは GetAuthorizationToken
を呼び出すことができません。
aws codeartifact login
: このコマンドを使用すると、一般的なパッケージマネージャーを 1 つのステップ CodeArtifact で使用するように簡単に設定できます。を呼び出すGetAuthorizationToken
と、login
でトークンを取得し、トークンと正しい CodeArtifact リポジトリエンドポイントを使用してパッケージマネージャーを設定します。サポートパッケージマネージャは次のとおりです。dotnet
npm
nuget
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
コマンドのパラメータについて説明します。
[Parameter] (パラメータ) | 必須 | 説明 |
---|---|---|
|
可能 |
認証するパッケージマネージャ。使用できる値は、 |
|
可能 |
リポジトリが属するドメイン名。 |
|
不可 |
ドメインの所有者のID。このパラメータは、認証されていない AWS アカウントが所有するドメインにアクセスする場合に必要です。詳細については、「クロスアカウントドメイン」を参照してください。 |
|
可能 |
認証先のリポジトリの名前。 |
|
不可 |
ログイン情報が有効な時間 (秒単位)。最小値は 900*で、最大値は43200 です。 |
|
不可 |
ネームスペースをリポジトリツールに関連付けます。 |
|
不可 |
設定を変更せずに、ツールをリポジトリに接続するために実行されるコマンドのみを出力します。 |
* ロールを担いながら |
次の例は、 login
コマンドを使用して認証トークンを取得する方法を示しています。
aws codeartifact login \ --tool
dotnet | npm | nuget | pip | swift | twine
\ --domainmy_domain
\ --domain-owner111122223333
\ --repositorymy_repo
npm でlogin
コマンドを実行する具体的方法についてはで npm を設定して使用する CodeArtifactを参照してください。Pythonについては、PythonでCodeArtifactを使う を参照してください。
を呼び出すために必要なアクセス許可 GetAuthorizationToken
API
を呼び出す CodeArtifact GetAuthorizationToken
には、 sts:GetServiceBearerToken
と アクセスcodeartifact:GetAuthorizationToken
許可の両方が必要ですAPI。
CodeArtifact リポジトリでパッケージマネージャーを使用するには、IAMユーザーまたはロールが を許可する必要がありますsts:GetServiceBearerToken
。は CodeArtifact ドメインリソースポリシーに追加sts:GetServiceBearerToken
できますが、アクセス許可はそのポリシーには影響しません。
で作成されたトークン GetAuthorizationToken
API
を呼び出しget-authorization-token
て、 から認証トークンを取得できます CodeArtifact。
aws codeartifact get-authorization-token \ --domain
my_domain
\ --domain-owner111122223333
\ --query authorizationToken \ --output text
--duration-seconds
引数を使用して、トークンの有効期限を変更できます。最小値は900で、最大値は43200です。次の例では、1時間(3600 秒)続くトークンを作成します。
aws codeartifact get-authorization-token \ --domain
my_domain
\ --domain-owner111122223333
\ --query authorizationToken \ --output text \ --duration-seconds3600
ロールを引き受けながらget-authorization-token
を実行する場合、トークンの有効期限は、ロールの最大セッション時間とは無関係です。引き受けたロールのセッション時間が満了したときにトークンが期限切れになるように構成するには、--duration-seconds
を0に設定します。
aws codeartifact get-authorization-token \ --domain
my_domain
\ --domain-owner111122223333
\ --query authorizationToken \ --output text \ --duration-seconds0
詳細については、次のドキュメントを参照してください。
-
トークンと環境変数のガイダンスについては、環境変数を使用して認証トークンを渡すを参照してください。
-
Python ユーザーについては、ログインコマンドを使用せずにpipを設定するまたはCodeArtifact で twine を設定して使用するを参照してください。
-
Maven ユーザーについては、Gradle で CodeArtifact を使用するまたはmvn で CodeArtifact を使用するを参照してください。
-
npmユーザーについては、login コマンドを使用せずに npm を設定するを参照してください。
環境変数を使用して認証トークンを渡す
AWS CodeArtifact は、 によって提供された認証トークンGetAuthorizationToken
APIを使用して、Maven や Gradle などのビルドツールからのリクエストを認証および承認します。それらの認証トークンについての詳細は、で作成されたトークン GetAuthorizationToken APIを参照してください。
これらの認証トークンは、ビルドツールで読み取ることができる環境変数に保存して、 CodeArtifact リポジトリからパッケージを取得したり、パッケージを発行したりするために必要なトークンを取得できます。
他ユーザーやプロセスによって読み取られたり、誤ってソース管理にチェックされる危険のあるファイルにトークンを格納するよりも、この方法がセキュリティ上の理由で適しています。
-
の説明に従って AWS 認証情報を設定しますAWS CLIをインストールまたはアップグレードしてから設定するには。
-
CODEARTIFACT_AUTH_TOKEN
環境変数を設定します:注記
一部のシナリオでは、
--domain-owner
引数を含める必要はありません。詳細については、「クロスアカウントドメイン」を参照してください。-
macOS、Linux :
export CODEARTIFACT_AUTH_TOKEN=`aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--query authorizationToken --output text` -
Windows (デフォルトのコマンドシェルを使用):
for /f %i in ('aws codeartifact get-authorization-token --domain
my_domain
--domain-owner111122223333
--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-owner111122223333
--query authorizationToken --output text
-
CodeArtifact 認証トークンの取り消し
認証されたユーザーが CodeArtifact リソースにアクセスするためのトークンを作成すると、そのトークンはカスタマイズ可能なアクセス期間が終了するまで続きます。デフォルトのアクセス期間は12時間です。場合によっては、アクセス期間が切れる前にトークンへのアクセスを取り消すことができます。以下の手順に従って、 CodeArtifact リソースへのアクセスを取り消すことができます。
引き受けたロールやフェデレーティッドユーザーアクセス などの一時的なセキュリティ認証情報を使用してアクセストークンを作成した場合は、アクセスを拒否するIAMポリシーを更新してアクセスを取り消すことができます。詳細については、「 ユーザーガイド」の「一時的なセキュリティ認証情報のアクセス許可の無効化」を参照してください。 IAM
長期IAMユーザー認証情報を使用してアクセストークンを作成した場合は、ユーザーのポリシーを変更してアクセスを拒否するか、IAMユーザーを削除する必要があります。詳細については、IAM「ユーザーのアクセス許可の変更」またはIAM「ユーザーの削除」を参照してください。