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

Python 2.7、3.4、および 3.5 は、AWS CLI バージョン 1 に対して非推奨です。詳細については、「AWS CLI バージョンについて」の AWS CLI バージョン 1 セクションを参照してください。

AWS CLI を設定する環境変数

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

注記

環境変数を使用して AWS Single Sign-On (AWS SSO) 認証を指定することはできません。代わりに、共有設定ファイル .aws/config で名前付きプロファイルを使用する必要があります。詳細については、「AWS Single Sign-On を使用するための 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

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_AUTO_PROMPT
この機能は、AWS CLI バージョン 2 でのみ使用できます。

次の機能を使用できるのは、‭AWS CLI‬ バージョン 2 を使用している場合のみです。AWS CLI バージョン 1 を実行している場合は使用できません。バージョン 2 をインストールする方法の詳細については、「AWS CLI バージョン 2 のインストール、更新、アンインストール」を参照してください。

AWS CLI バージョン 2 の自動プロンプトを有効にします。使用できる設定は 2 つあります。

  • on は、ユーザーが aws コマンドを実行しようとするたびに、完全な自動プロンプトモードを使用します。これには、完全なコマンドまたは不完全なコマンドを問わず、それらの後で Enter キーを押すことが含まれます。

    aws_cli_auto_prompt=on
  • on-partial は、部分的な自動プロンプトモードを使用します。コマンドが不完全、またはクライアント側の検証エラーが原因でコマンドを実行できない場合は、自動プロンプトが使用されます。このモードは、既存のスクリプトまたはランブックがある場合、あるいはすべてのコマンドに対してプロンプトを表示するのではなく、不慣れなコマンドにのみ自動プロンプトを表示したい場合に特に便利です。

    aws_cli_auto_prompt=on-partial

定義されている場合は、この環境変数が cli_auto_prompt プロファイル設定の値を上書きします。この環境変数は、--cli-auto-prompt および --no-cli-auto-prompt コマンドラインパラメータを使用して上書きできます。

AWS CLI バージョン 2 の自動プロンプト機能の詳細については、「AWS CLI でコマンドの入力プロンプトを表示する」を参照してください。

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_EC2_METADATA_DISABLED

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

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

AWS_MAX_ATTEMPTS

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

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

AWS_PAGER

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

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

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

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 です。

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

次の 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.us-west-2.amazonaws.com エンドポイントではなく、リージョナルエンドポイント sts.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 プロバイダを使用したロール継承にのみ適用され、一般的なロール継承プロバイダ設定には適用されません。