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

AWS CLI を設定する環境変数

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

注記

環境変数を使用して AWS シングルサインオン (AWS SSO) 認証を指定することはできません。代わりに、共有設定ファイル .aws/config で名前付きプロファイルを使用する必要があります。詳細については、「AWS シングルサインオン を使用するための AWS CLI の設定 」を参照してください。

オプションの優先順位

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

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

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

環境変数の設定方法

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

Linux または 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

set を使用して環境変数を設定すると、現在のコマンドプロンプトセッションの終了時まで、または変数を別の値に設定するまで、使用する値が変更されます。setxを使用して環境変数を設定すると、現在のコマンドプロンプトセッションおよびコマンド実行後に作成するすべてのコマンドプロンプトセッションで使用する値が変更されます。これは、コマンド実行時にすでに実行されている他のコマンドシェルには影響を及ぼしません

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 およびコマンドプロンプトセッション間で環境変数を永続的に設定するには、[コントロールパネル] の [ システム] アプリケーションを使用して変数を保存します。または、変数を 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_CLI_FILE_ENCODING

AWS CLI バージョン 2 のみ。テキストファイルに使用するエンコードを指定します。デフォルトでは、エンコードはロケールと一致します。ロケールとは異なるエンコードを設定するには、aws_cli_file_encoding 環境変数を使用します。例えば、Windows でデフォルトのエンコード CP1252 を使用する場合、aws_cli_file_encoding=UTF-8 を設定すると、テキストファイルを開くときに UTF-8 が使用されるように CLI が設定されます。

AWS_CONFIG_FILE

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

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

AWS_DEFAULT_OUTPUT

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

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

AWS_DEFAULT_REGION

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

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

AWS_PAGER

出力に使用されるページャープログラムを指定します。デフォルトでは、AWS CLI バージョン 2 はオペレーティングシステムのデフォルトのページャープログラムを介してすべての出力を返します。

外部ページングプログラムの使用をすべて無効にするには、変数を空の文字列に設定します。

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

AWS_PROFILE

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

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

AWS_ROLE_SESSION_NAME

ロールセッションに関連付ける名前を指定します。この値は、このプロファイルのユーザーが実行したコマンドの CloudTrail ログに表示されます。

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

AWS_SECRET_ACCESS_KEY

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

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

AWS_SESSION_TOKEN

AWS STS オペレーションから直接取得した一時的なセキュリティ認証情報を使用している場合に必要なセッショントークン値を指定します。詳細については、『AWS CLI Command Reference』の「★Output section of the assume-role command」を参照してください。

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

AWS_SHARED_CREDENTIALS_FILE

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

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

AWS_STS_REGIONAL_ENDPOINTS

AWS CLI クライアントが AWS Security Token Service (AWS STS) と通信するために使用する AWS サービスエンドポイントを AWS CLI が判別する方法を指定します。

  • AWS CLI バージョン 1 のデフォルト値は legacy です。

  • AWS CLI バージョン 2 のデフォルト値は regional です。

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

  • legacy – 以下の AWS リージョンについては、グローバル STS エンドポイント sts.amazonaws.com を使用します: ap-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。他のすべてのリージョンでは、それぞれのリージョンエンドポイントが自動的に使用されます。

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