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_FILE
と AWS_SHARED_CREDENTIALS_FILE
の環境変数を別のローカルパスに設定することで、config
ファイルと credentials
ファイルの場所をデフォルト以外の場所に指定できます。詳細については、「AWS CLI の環境変数の設定」を参照してください。
設定と認証情報ファイルの設定の詳細については、「AWS CLI での設定と認証情報ファイル設定」を参照してください。