AWS CLI を設定する環境変数 - AWS Command Line Interface

このドキュメントはバージョン 1 の AWS CLI のみを対象としています。AWS CLI のバージョン 2 に関連するドキュメントについては、バージョン 2 用ユーザーガイドを参照してください。

AWS CLI を設定する環境変数

環境変数を使用すると、別の方法で設定オプションと認証情報を指定できます。このため、スクリプト処理や、名前付きプロファイルを一時的にデフォルトとして設定する場合に便利です。

オプションの優先順位

  • このトピックで示されている環境変数のいずれかを使用してオプションを指定した場合、設定ファイルのプロファイルからロードされた値は上書きされます。

  • AWS CLI コマンドラインでパラメータを使用してオプションを指定した場合、対応する環境変数、または設定ファイルのプロファイルからの値が上書きされます。

優先順位および AWS CLI が使用する認証情報を決定する方法の詳細については、「構成設定と優先順位」を参照してください。

環境変数の設定方法

次の例では、デフォルトのユーザーの環境変数を設定する方法を示します。

Linux or macOS
$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE $ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY $ export AWS_DEFAULT_REGION=us-west-2

環境変数を設定すると、シェルセッションの終了時まで、または変数に別の値を設定するまで、使用する値が変更されます。シェルのスタートアップスクリプトで変数を設定することで、以降のセッションでその変数を永続的にすることができます。

Windows Command Prompt

すべてのセッションに設定するには

C:\> setx AWS_ACCESS_KEY_ID AKIAIOSFODNN7EXAMPLE C:\> setx AWS_SECRET_ACCESS_KEY wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> setx AWS_DEFAULT_REGION us-west-2

setx を使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼしません。設定をロードするには、ターミナルの再起動が必要な場合があります。

現在のセッションのみに設定するには

set を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。

C:\> set AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE C:\> set AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY C:\> set AWS_DEFAULT_REGION=us-west-2
PowerShell
PS C:\> $Env:AWS_ACCESS_KEY_ID="AKIAIOSFODNN7EXAMPLE" PS C:\> $Env:AWS_SECRET_ACCESS_KEY="wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" PS C:\> $Env:AWS_DEFAULT_REGION="us-west-2"

前の例に示すように PowerShell プロンプトで環境変数を設定した場合は、現在のセッションの期間だけ値が保存されます。PowerShell およびコマンドプロンプトセッション間で環境変数を永続的に設定するには、[Control Panel] (コントロールパネル) の [System] (システム) アプリケーションを使用して変数を保存します。または、変数を PowerShell プロファイルに追加すると、その変数を今後のすべての PowerShell セッションに設定できます。環境変数の保存やそれをセッション間で永続的に維持する詳細については、PowerShell ドキュメントを参照してください。

AWS CLI でサポートされている環境変数

AWS CLI は次の環境変数をサポートしています。

AWS_ACCESS_KEY_ID

IAM ユーザーまたはロールに関連付けられる AWS アクセスキーを指定します。

定義されている場合、この環境変数はプロファイル設定 aws_access_key_id の値よりも優先されます。アクセスキー ID をコマンドラインオプションを使用して指定することはできません。

AWS_CA_BUNDLE

HTTPS 証明書の検証に使用する証明書バンドルへのパスを指定します。

定義されている場合、この環境変数はプロファイル設定 ca_bundle の値よりも優先されます。この環境変数は、--ca-bundle コマンドラインパラメータを使用して上書きできます。

AWS_CONFIG_FILE

AWS CLI が設定プロファイルを保存するために使用するファイルの場所を指定します。デフォルトのパスは ~/.aws/config です。

この値は、名前付きプロファイル設定に指定したり、コマンドラインパラメータを使用して指定したりすることはできません。

AWS_DATA_PATH

AWS CLI データをロードする場合、~/.aws/models のパスの検索が組み込まれた以外をチェックする追加のディレクトリのリスト。環境変数を設定することで、組み込まれた検索パスに戻る前に最初にチェックする追加のディレクトリを表示します。複数のエントリは os.pathsep 文字で区切る必要があり、Linux または macOS では :、Windows では ; を使用します。

AWS_DEFAULT_OUTPUT

使用する出力形式を指定します。

定義されている場合、この環境変数はプロファイル設定 output の値よりも優先されます。この環境変数は、--output コマンドラインパラメータを使用して上書きできます。

AWS_DEFAULT_REGION

リクエストを送信する AWS リージョンを指定します。

定義されている場合は、この環境変数によってプロファイル設定 region の値を上書きします。--region のコマンドラインパラメータを使用することにより、環境変数を上書きできます。

AWS_EC2_METADATA_DISABLED

Amazon EC2 インスタンスメタデータサービス (IMDS) の使用を無効にします。

true に設定した場合、ユーザーの認証情報または設定 (リージョンなど) は IMDS から要求されません。

AWS_MAX_ATTEMPTS

再試行ハンドラが使用する AWS CLI の最大再試行回数を指定します。最初の呼び出しは、指定した値に対してカウントされます。再試行の詳細については、「AWS CLI の再試行」を参照してください。

定義されている場合、この環境変数はプロファイル設定 max_attempts の値よりも優先されます。

AWS_METADATA_SERVICE_NUM_ATTEMPTS

IAM ロールで設定された Amazon EC2 instance インスタンスで認証情報の取得を試行すると、AWS CLI では停止する前にインスタンスメタデータサービスからの認証情報の取得を試行します。Amazon EC2 インスタンスで実行されるコマンドがわかっている場合は、停止するまでに AWS CLI が複数回再試行するように、この値を増やすことができます。

AWS_METADATA_SERVICE_TIMEOUT

インスタンスメタデータサービスに接続する前にタイムアウトするまでの秒数。IAM ロールで設定された Amazon EC2 インスタンスで認証情報の取得を試行すると、インスタンスメタデータサービスへの接続はデフォルトで 1 秒後にタイムアウトします。設定された IAM ロールを使用して Amazon EC2 インスタンスで実行されていることがわかっている場合は、必要に応じてこの値を増やすことができます。

AWS_PROFILE

使用する認証情報およびオプションと共に AWS CLI プロファイルの名前を指定します。これは、credentials ファイルまたは config ファイルに保存されているプロファイルの名前、または、デフォルトプロファイルを使用する場合は値 default となります。

この環境変数を指定した場合、設定ファイルの [default] という名前のプロファイルを使用する動作は上書きされます。この環境変数は、--profile コマンドラインパラメータを使用して上書きできます。

AWS_RETRY_MODE

AWS CLI が使用する再試行モードを指定します。再試行モードには、レガシー (デフォルト)、標準、アダプティブの 3 つがあります。再試行の詳細については、「AWS CLI の再試行」を参照してください。

定義されている場合、この環境変数はプロファイル設定 retry_mode の値よりも優先されます。

AWS_ROLE_ARN

AWS CLI コマンドの実行に使用するウェブ ID プロバイダの IAM ロールの Amazon リソースネーム (ARN) を指定します。

AWS_WEB_IDENTITY_TOKEN_FILE および AWS_ROLE_SESSION_NAME 環境変数で使用されます。

定義されている場合、この環境変数はプロファイル設定 role_arn の値よりも優先されます。ロールセッション名をコマンドラインパラメータとして指定することはできません。

注記

この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。

ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。

AWS_ROLE_SESSION_NAME

ロールセッションにアタッチする名前を指定します。この値は、RoleSessionName が AWS CLI オペレーションを呼び出す場合に AssumeRole パラメータに提供され、引き受けたロールユーザー ARN arn:aws:sts::123456789012:assumed-role/role_name/role_session_name の一部になります。このパラメータはオプションです。この値を指定しない場合、セッション名は自動的に生成されます。この名前は、このセッションに関連付けられたエントリの AWS CloudTrail ログに表示されます。

定義されている場合、この環境変数はプロファイル設定 role_session_name の値よりも優先されます。

AWS_ROLE_ARN および AWS_WEB_IDENTITY_TOKEN_FILE 環境変数で使用されます。

ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。

注記

この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。

AWS_SECRET_ACCESS_KEY

アクセスキーに関連付けられるシークレットキーを指定します。これは、基本的にアクセスキーの「パスワード」です。

定義されている場合、この環境変数はプロファイル設定 aws_secret_access_key の値よりも優先されます。シークレットアクセスキー ID をコマンドラインオプションとして指定することはできません。

AWS_SESSION_TOKEN

AWS STS オペレーションから直接取得した一時的なセキュリティ認証情報を使用している場合に必要なセッショントークン値を指定します。詳細については、AWS CLI コマンドリファレンスにある assume-role コマンドの「出力」セクションを参照してください。

定義されている場合、この環境変数はプロファイル設定 aws_session_token の値よりも優先されます。

AWS_SHARED_CREDENTIALS_FILE

AWS CLI がアクセスキーを保存するために使用するファイルの場所を指定します。デフォルトのパスは ~/.aws/credentials です。

この値は、名前付きプロファイル設定に指定したり、コマンドラインパラメータを使用して指定したりすることはできません。

AWS_STS_REGIONAL_ENDPOINTS

AWS CLI クライアントが AWS (AWS CLI) と通信するために使用する AWS Security Token Service サービスエンドポイントを AWS STS が判別する方法を指定します。AWS CLI バージョン 1 のデフォルト値は legacy です。

次の 2 つの値のいずれかを指定できます。

  • legacyap-northeast-1ap-south-1ap-southeast-1ap-southeast-2aws-globalca-central-1eu-central-1eu-north-1eu-west-1eu-west-2eu-west-3sa-east-1us-east-1us-east-2us-west-1、および us-west-2 の各 AWS リージョンリージョンにグローバル STS エンドポイント sts.amazonaws.com を使用します。他のすべてのリージョンでは、それぞれのリージョンエンドポイントが自動的に使用されます。

  • regional – AWS CLI は常に、現在設定されているリージョンに AWS STS エンドポイントを使用します。例えば、クライアントが us-west-2 を使用するように設定されている場合、AWS STS へのすべてのコールは、グローバル sts.amazonaws.com エンドポイントではなく、リージョンエンドポイント sts.us-west-2.amazonaws.com に対して行われます。この設定が有効なときにグローバルエンドポイントにリクエストを送信するには、リージョンを aws-global に設定します。

AWS_WEB_IDENTITY_TOKEN_FILE

OAuth 2.0 アクセストークンまたは ID プロバイダーによって提供される OpenID Connect ID トークンを含むファイルへのパスを指定します。AWS CLI はこのファイルの内容をロードし、WebIdentityToken 引数として AssumeRoleWithWebIdentity オペレーションに渡します。

AWS_ROLE_ARN および AWS_ROLE_SESSION_NAME 環境変数で使用されます。

定義されている場合、この環境変数はプロファイル設定 web_identity_token_file の値よりも優先されます。

ウェブ ID の使用の詳細については、「ウェブ ID を使用したロールの継承」を参照してください。

注記

この環境変数は、ウェブ ID プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。