AWS CLI の設定 - AWS Command Line Interface

AWS CLI の設定

このトピックでは、AWS Command Line Interface (AWS CLI) が AWS と対話するために使用する基本設定をすばやく指定する方法について説明します。これらには、セキュリティ認証情報、デフォルトの出力形式、およびデフォルトの AWS リージョンが含まれます。

プログラムによるアクセス用の認証情報を収集する

AWS Management Console の外部で AWS を操作するには、プログラムによるアクセスが必要です。認証と認証情報の説明については、次のいずれかのオプションを選択します。

[Authentication type] (認証タイプ) 目的 手順

IAM アイデンティティセンターのワークフォースユーザーの短期認証情報

(推奨) IAM アイデンティティセンターのワークフォースユーザーに短期認証情報を使用します。

セキュリティのベストプラクティスは、IAM アイデンティティセンターで AWS Organizations を使用することです。その場合は、組み込みの IAM アイデンティティセンターディレクトリや Active Directory などのユーザーディレクトリを短期認証情報と組み合わせます。

AWS CLI を使用した IAM アイデンティティセンター認証の設定
IAM ユーザーの短期認証情報 長期認証情報よりも安全な IAM ユーザーの短期認証情報を使用します。認証情報が漏洩した場合でも、有効期限が切れる前に使用される可能性のある期間が限られます。 AWS CLI の短期認証情報を使用した認証
Amazon EC2 インスタンスの IAM または IAM アイデンティティセンターのユーザー Amazon EC2 インスタンスメタデータを使用し、Amazon EC2 インスタンスに割り当てられたロールを使用して一時的な認証情報のクエリを実行します。 AWS CLI で Amazon EC2 インスタンスメタデータを認証情報として使用する
アクセス許可のロールの引き受け 別の認証情報メソッドと組み合わせて、ユーザーがアクセスできない可能性のある AWS のサービスに一時的にアクセスできるようにするためのロールを引き受けます。 AWS CLI での IAM ロールの使用
IAM ユーザーの長期認証情報 (非推奨) 有効期限のない長期認証情報を使用します。 AWS CLI の IAM ユーザーの認証情報を使用した認証
IAM または IAM アイデンティティセンターのワークフォースユーザーの外部ストレージ (非推奨) 別の認証情報メソッドと組み合わせます。ただし、認証情報値の値は AWS CLI 以外の場所に保存します。この方法は、認証情報が保存される外部の場所の安全性に依存します。 AWS CLI の外部プロセスを使用した認証情報の調達

新しい設定と認証情報のセットアップ

AWS CLI は、設定と認証情報を、credentials ファイルと config ファイルのプロファイル (設定のコレクション) に保存します。

すばやくセットアップするには、主に 2 つの方法があります。

以下の例では、各認証方法でサンプル値を使用しています。サンプル値を自分の値に置き換えてください。

AWS CLI コマンドを使用した設定

一般的には、任意のターミナルの aws configure または aws configure sso コマンドを使用するのが、AWS CLI のインストールをセットアップするための最も簡単な方法です。希望する認証情報メソッドに応じた関連情報を入力するよう AWS CLI から求められます。デフォルトでは、このプロファイル内の情報は、使用するプロファイルを明示的に指定しない AWS CLI コマンドを実行する場合に使用されます。

credentials ファイルとconfig ファイルの詳細については、「AWS CLI での設定と認証情報ファイル設定」を参照してください。

IAM Identity Center (SSO)

この例は、aws configure sso ウィザードを使用した AWS IAM Identity Center 用です。詳細については、「AWS CLI を使用した IAM アイデンティティセンター認証の設定」を参照してください。

$ aws configure sso SSO session name (Recommended): my-sso SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 Attempting to automatically open the SSO authorization page in your default browser. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
IAM Identity Center (Legacy SSO)

この例は、aws configure sso ウィザードを使用した AWS IAM Identity Center の従来の方法を示しています。従来の SSO を使用するには、セッション名を空白のままにします。詳細については、「AWS CLI を使用した IAM アイデンティティセンター認証の設定」を参照してください。

$ aws configure sso SSO session name (Recommended): SSO start URL [None]: https://my-sso-portal.awsapps.com/start SSO region [None]:us-east-1 SSO authorization page has automatically been opened in your default browser. Follow the instructions in the browser to complete this authorization request. There are 2 AWS accounts available to you. > DeveloperAccount, developer-account-admin@example.com (111122223333) ProductionAccount, production-account-admin@example.com (444455556666) Using the account ID 111122223333 There are 2 roles available to you. > ReadOnly FullAccess Using the role name "ReadOnly" CLI default client Region [None]: us-west-2 CLI default output format [None]: json CLI profile name [123456789011_ReadOnly]: user1
Short-term credentials

この例は、AWS Identity and Access Management の短期の認証情報用です。aws configure ウィザードを使用して初期値を設定すると、aws configure set コマンドは必要な最後の値を割り当てます。詳細については、「AWS CLI の短期認証情報を使用した認証」を参照してください。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json $ aws configure set aws_session_token fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE
IAM role

この例は IAM ロールを引き受けるためのものです。IAM ロールを使用するプロファイルは、別のプロファイルから認証情報を取得し、IAM ロールのアクセス許可を適用します。以下の例で、default は認証情報のソースプロファイルです。user1 は同じ認証情報を借り出して新しいロールを継承します。このプロセス用のウィザードは存在しないため、各値の設定には aws configure set コマンドを使用します。詳細については、「AWS CLI での IAM ロールの使用」を参照してください。

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set source_profile default $ aws configure set role_session_name session_user1 $ aws configure set region us-west-2 $ aws configure set output json
Amazon EC2 instance metadata credentials

次の例は、ホストしている Amazon EC2 インスタンスメタデータから取得した認証情報用です。このプロセス用のウィザードは存在しないため、各値の設定には aws configure set コマンドを使用します。詳細については、「AWS CLI で Amazon EC2 インスタンスメタデータを認証情報として使用する」を参照してください。

$ aws configure set role_arn arn:aws:iam::123456789012:role/defaultrole $ aws configure set credential_source Ec2InstanceMetadata $ aws configure set region us-west-2 $ aws configure set output json
Long-term credentials
警告

セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。

この例は、AWS Identity and Access Management の長期の認証情報用です。詳細については、「AWS CLI の IAM ユーザーの認証情報を使用した認証」を参照してください。

$ aws configure AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY Default region name [None]: us-west-2 Default output format [None]: json

認証方法と認証情報メソッドの詳細については、「AWS CLI の認証とアクセス認証情報」を参照してください。

認証情報と設定ファイルの手動編集

情報をコピーして貼り付ける場合は、config ファイルと credentials ファイルを手動で編集することをお勧めします。希望する認証情報メソッドに応じて、ファイルは異なる方法で設定されます。

ファイルはホームディレクトリの .aws フォルダの下に保存されます。ホームディレクトリの場所はオペレーティングシステムによって異なりますが、環境変数 %UserProfile% (Windows の場合) および $HOME またはチルド ~ (Unix ベースのシステムの場合) を使用して参照されます。これらの設定が保存される場所の詳細については、「構成設定はどこに保存されていますか。」を参照してください。

次の例は、default プロファイルと user1 という名前のプロファイルを示しており、サンプル値を使用しています。サンプル値を自分の値に置き換えてください。credentials ファイルとconfig ファイルの詳細については、「AWS CLI での設定と認証情報ファイル設定」を参照してください。

IAM Identity Center (SSO)

この例は AWS IAM Identity Center 用です。詳細については、「AWS CLI を使用した IAM アイデンティティセンター認証の設定」を参照してください。

認証情報ファイル

credentials ファイルは、この認証方法には使用しません。

設定ファイル

[default] sso_session = my-sso sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_session = my-sso sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json [sso-session my-sso] sso_region = us-east-1 sso_start_url = https://my-sso-portal.awsapps.com/start sso_registration_scopes = sso:account:access
IAM Identity Center (Legacy SSO)

この例は、AWS IAM Identity Center の従来の方法を示しています。詳細については、「AWS CLI を使用した IAM アイデンティティセンター認証の設定」を参照してください。

認証情報ファイル

credentials ファイルは、この認証方法には使用しません。

設定ファイル

[default] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 111122223333 sso_role_name = readOnly region = us-west-2 output = text [profile user1] sso_start_url = https://my-sso-portal.awsapps.com/start sso_region = us-east-1 sso_account_id = 444455556666 sso_role_name = readOnly region = us-east-1 output = json
Short-term credentials

この例は、AWS Identity and Access Management の短期の認証情報用です。詳細については、「AWS CLI の短期認証情報を使用した認証」を参照してください。

認証情報ファイル

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE [user1] aws_access_key_id=ASIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY aws_session_token = fcZib3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

設定ファイル

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text
IAM role

この例は IAM ロールを引き受けるためのものです。IAM ロールを使用するプロファイルは、別のプロファイルから認証情報を取得し、IAM ロールのアクセス許可を適用します。以下の例で、default は認証情報のソースプロファイルで、user1 は同じ認証情報を借り出して新しいロールを継承します。詳細については、「AWS CLI での IAM ロールの使用」を参照してください。

認証情報ファイル

credentials ファイルは、ソースプロファイルが使用する認証によって異なります。次の例で、ソースプロファイルは短期の認証情報を使用しています。

[default] aws_access_key_id=ASIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY aws_session_token = IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZ2luX2IQoJb3JpZVERYLONGSTRINGEXAMPLE

設定ファイル

[default] region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role source_profile=default role_session_name=session_user1 region=us-east-1 output=text
Amazon EC2 instance metadata credentials

次の例は、ホストしている Amazon EC2 インスタンスメタデータから取得した認証情報用です。詳細については、「AWS CLI で Amazon EC2 インスタンスメタデータを認証情報として使用する」を参照してください。

認証情報ファイル

credentials ファイルは、この認証方法には使用しません。

設定ファイル

[default] role_arn=arn:aws:iam::123456789012:role/defaultrole credential_source=Ec2InstanceMetadata region=us-west-2 output=json [profile user1] role_arn=arn:aws:iam::777788889999:role/user1role credential_source=Ec2InstanceMetadata region=us-east-1 output=text
Long-term credentials
警告

セキュリティリスクを避けるため、専用ソフトウェアの開発や実際のデータを扱うときは、IAM ユーザーを認証に使用しないでください。代わりに、AWS IAM Identity Center などの ID プロバイダーとのフェデレーションを使用してください。

この例は、AWS Identity and Access Management の長期の認証情報用です。詳細については、「AWS CLI の IAM ユーザーの認証情報を使用した認証」を参照してください。

認証情報ファイル

[default] aws_access_key_id=AKIAIOSFODNN7EXAMPLE aws_secret_access_key=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY [user1] aws_access_key_id=AKIAI44QH8DHBEXAMPLE aws_secret_access_key=je7MtGbClwBF/2Zp9Utk/h3yCo8nvbEXAMPLEKEY

設定ファイル

[default] region=us-west-2 output=json [profile user1] region=us-east-1 output=text

認証方法と認証情報メソッドの詳細については、「AWS CLI の認証とアクセス認証情報」を参照してください。

既存の設定と認証情報ファイルの使用

既存の設定および認証情報ファイルがある場合は、AWS CLI にこれらのファイルを使用できます。

config ファイルと credentials ファイルを使用するには、これらのファイルをホームディレクトリの .aws という名前の付いたフォルダに移動します。ホームディレクトリの場所はオペレーティングシステムによって異なりますが、環境変数 %UserProfile% (Windows の場合) および $HOME またはチルド ~ (Unix ベースのシステムの場合) を使用して参照されます。

AWS_CONFIG_FILEAWS_SHARED_CREDENTIALS_FILE の環境変数を別のローカルパスに設定することで、config ファイルと credentials ファイルの場所をデフォルト以外の場所に指定できます。詳細については、「AWS CLI の環境変数の設定」を参照してください。

設定と認証情報ファイルの設定の詳細については、「AWS CLI での設定と認証情報ファイル設定」を参照してください。