AWS CLI
AWS CLI を使うと AWS 上のリソースをコマンドラインで操作することができます。
IAM Identity Center の設定ができていない場合は、IAM Identity Center で作業用のユーザーを管理する を参考にして設定を終わらせてください。
AWS CLI のインストール
AWS CLIの最新バージョンのインストールまたは更新 - AWS Command Line Interface を見ながらインストールしてください。
AWS CLI のプロファイル設定
IAM Identity Center でログインIDを管理している場合、 AWS_ACCESS_KEY_ID
や AWS_SECRET_ACCESS_KEY
などの情報をローカルに保管せずに AWS CLI (aws コマンド) を利用することができます(セキュリティ的にも良いことです)。その代わり AWS CLI を利用する前に aws sso login
をする必要があります。
以下を参考にして aws sso login
ができる環境を整えてください。
aws configure sso --profile プロファイル名
例: admin
という名前のプロファイルを設定したい場合
aws configure sso --profile admin
1. SSOログインの設定
aws configure sso
を実行すると以下が一つずつ表示されます。
SSO session name (Recommended): admin
SSO start URL [None]: https://d-123456789c.awsapps.com/start#
SSO region [None]: ap-northeast-1
SSO registration scopes [sso:account:access]:
SSO session name (Recommended):
- SSOログイン設定の名前です。
- わかりやすい名前にしてください。上の例では
admin
としています。(詳しくは付録参照)
SSO start URL [None]:
- 「AWS アクセスポータルの URL」を指定してください。
- IAM Identity Center のダッシュボードから確認できます。
SSO region [None]:
- IAM Identity Center を用意したリ ージョンと同じリージョンを指定します。
SSO registration scopes [sso:account:access]:
- SSO セッションのアクセススコープ(認可の範囲)です。
- デフォルトの
sso:account:access
のままで良いので、何も入力せず Enter を押してください。
2. 認証と認可
2.1. 認証
IAM Identity Center で用意したアカウントでログインしてください。

2.2. 認可
画面に従って確認を進めてください。



3. プロファイルの設定
認証と認可が終わった後、ターミナルを確認するとプロファイルの設定ができるようになっています。
例
There are 3 roles available to you.
Using the role name "AdministratorAccess"
CLI default client Region [None]: ap-northeast-1
CLI default output format [None]: json
There are 3 roles available to you.
- 利用したい許可セットを指定します。
- 以下の様に、↑↓方向キーで選べます。
※ IAM Identity Center で用意した許可セットが選択できます
Using the role name "AdministratorAccess"
- 選択後以下の様に選択した許可セットが表示されます。
CLI default client Region [None]:
- AWS CLI で --region オプションを指定しない場合のデフォルトリージョンを指定します
- 主に東京リージョンを使用する場合は、
ap-northeast-1
を指定しておくことをお勧めします。
CLI default output format [None]:
- AWS CLI で取得した結果をどの様なフォーマットで出力するか指定できます
- 特にこだわりがなければ
json
をお勧めします。
お疲れ様でした!以上で設定完了です。
設定したプロファイル名の一覧を表示
実行すると設定済みのプロファイル名一覧が表示されます
aws configure list-profiles
AWS CLI で SSO ログイン
aws sso login --profile プロファイル名
例: admin
のプロファイルで AWS CLI を操作できるようにしたい場合
aws sso login --profile admin
--profile
を指定せずに aws コマンドを利用する方法
環境変数 AWS_PROFILE
を設定しておくと、--profile
の指定をせずに aws コマンドを利用できます。
例: admin
のプロファイルで常に AWS CLI を操作できるようにしたい場合
export AWS_PROFILE=admin
aws sso login
上記は起動しているシェルの中だけ有効ですが、毎回 exprot
を指定するのが面倒な場合は、使っているシェルのrcファイルに書いておくと便利です。
bashの場合
echo 'export AWS_PROFILE=admin' >> ~/.bashrc
source ~/.bashrc
zsh の場合
echo 'export AWS_PROFILE=admin' >> ~/.zshrc
source ~/.zshrc
AWS Account ID を表示する
例: JSON で表示
aws sts get-caller-identity
例: AWS Account ID だけを表示
aws sts get-caller-identity --query 'Account' --output text
応用例: AWS Account ID を変数に入れて利用する
以下でシェル変数 aws_account_id
に AWS Account ID を入れます
aws_account_id=$(aws sts get-caller-identity --query="Account" --output text)
以下のように参照できます
echo ${aws_account_id}
aws コマンドの中で arn (Amazon Resource Name) を指定するシーンなどに活用できます。
付録
~/.aws/config
の中身について
cat ~/.aws/config
上記をすると以下の様な内容が確認できます。
(複数のプロファイルを設定している場合は、以下のセットが複数あります)
[profile AdministratorAccess]
sso_session = admin
sso_account_id = 123456789012
sso_role_name = AdministratorAccess
region = ap-northeast-1
[sso-session admin]
sso_start_url = https://d-123456789c.awsapps.com/start#
sso_region = ap-northeast-1
sso_registration_scopes = sso:account:access
それぞれ次の通りとなります。
[profile プロファイル名]
AWS CLI の --profile
プロファイル名を指定すると使用される設定が記述されています
設定項目 | 説明 |
---|---|
sso_session | 使用する SSO セッションの名前。[sso-session] セクションで定義されたセッション設定を参照する。 |
sso_account_id | アクセス対象の AWS アカウント ID。 SSO を通じてアクセスしたい AWS アカウントの ID を指定する。 |
sso_role_name | 引き受ける許可セットの名前。 アクセス対象のアカウントで引き受けるIAM Identity Center の許可セットを指定する。 |
region | 操作対象の AWS リージョン。 このプロファイルを使用して AWS CLI 経由 で操作を行う際のデフォルトリージョンを指定する。 |
[sso-session SSOセッション名]
SSOログインをするための情報が記載されています。
[sso-session SSOセッション名]
の 「SSOセッション名」の部分は、aws configure sso
の「SSO session name (Recommended):
」で設定した値です。
設定項目 | 説明 |
---|---|
sso_start_url | AWS SSO のログインページの URL。 ユーザーが認証プロセスを開始するためにアクセスする URL を指定。 |
sso_region | AWS SSO サービスを利用するリージョン。 SSO セッションを開始するために利用される AWS リージョンを指定。 |
sso_registration_scopes | SSO セッションのアクセススコープ。 どのような種類のアクセスがこのセッションに許可されるかを定義。 |