はじめに
AWS CLI
の認証情報のセットアップではアクセスキーを使う方法があるが、アクセスキーの仕様は基本的に推奨されていないのでSSO認証を使ってみる。
- AWS CLI を使用した IAM アイデンティティセンター認証の設定
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-sso.html
上記のドキュメントに沿って設定を行う。
環境
Windows 11 Professional
WSL2 Ubuntu 24.04 LTS
AWS CLI
準備
- AWS CLI インストール済み
手順
ユーザの作成
1. AWSコンソールでIAM Identity Centerを有効にする
2. Identity Centerでユーザを作成する

※フォームでユーザを作成する。
今回はグループには追加しない。
3. 設定したメールアドレスにメールが届くので承認する
メール内のAccept invitation
を選択し、アクセスをし、パスワードを設定する。
4. MFAデバイスの登録
許可セットの作成
1. Identity Centerのナビゲーションペイン「許可セット」→「許可セットを作成」を選択する

2.「PowerUserAccess」を選択する

3. 許可セットの詳細を設定する
4. 設定を確認をする

AWSアカウントへの割り当て
1. Identity Centerのナビゲーションペイン「AWSアカウント」→「ユーザーまたはグループを割り当て」を選択する

2. 作成したユーザーを選択する

3. 許可セットを割り当てする
許可セット「PowerUserAccess
」を選択する。

4. 確認

5. 作成したユーザーでログインをしてアクセスポータルを確認する

WSLでセットアップ
1. aws configure ssoを実行する
aws configure sso
SSO session name (Recommended): cli
SSO start URL [None]: [SSOのスタートURL]
SSO region [None]: [SSOリージョン]
SSO registration scopes [sso:account:access]: (空白)
Attempting to automatically open the SSO authorization page in your default browser.
If the browser does not open or you wish to use a different device to authorize this request, open the following URL:
[SSOのアクセスURL]

2. SSOのアクセスURLにアクセスをし、「アクセスを許可」を行う
3. 追加の情報を入力する
項目 | 値 |
---|---|
Default client Region | ap-northeast-1 |
CLI default output format | json |
Profile name | 空白 |
The only AWS account available to you is: [アカウントID]
Using the account ID [アカウントID]
The only role available to you is: PowerUserAccess
Using the role name "PowerUserAccess"
Default client Region [None]: ap-northeast-1
CLI default output format (json if not specified) [None]: json
Profile name [PowerUserAccess-[アカウントID]]: (空白)
To use this profile, specify the profile name using --profile, as shown:
aws sts get-caller-identity --profile PowerUserAccess-[アカウントID]
4. 確認
3で最後に書かれたコマンドを実行して確認をしておく。
aws sts get-caller-identity --profile PowerUserAccess-[アカウントID]
アウトプット
{
"UserId": "[アクセスキー]:cli-user",
"Account": "[アカウントID]",
"Arn": "arn:aws:sts::[アカウントID]:assumed-role/AWSReservedSSO_PowerUserAccess_[組織ID]/cli-user"
}
AWS CLIを使う
S3のバケット一覧の取得
aws --profile PowerUserAccess-[アカウントID] s3 ls
2024-11-08 10:42:25 game-captures
2024-11-10 08:44:23 lambda-layer-for-nodej
2024-11-08 11:40:30 media-converted-game-captures
取得できてる!
Amazon Q Developer CLIで使う
q chat
q chat
> PowerUserAccess-[アカウントID] のプロファイルを使って S3バケットのの一覧を取得して
> PowerUserAccess-[アカウントID] のプロファイルを使って S3バケットのの一覧を取得して
AWS CLIを使用して、PowerUserAccess-[アカウントID]プロファイルでS3バケットの一覧を取得します。以下のコマンドを実行します:
Use AWS CLI
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
Running aws cli command:
Service name: s3api
Operation name: list-buckets
Parameters:
Profile name: PowerUserAccess-[アカウントID]
Region: us-east-1
Label: List S3 buckets
Using AWS CLI...
▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔▔
🟢 Completed in 1.18s
PowerUserAccess-[アカウントID] プロファイルで S3 バケットの一覧を取得しました。
現在のアカウントには以下の 3 つの S3 バケットがあります:
1. game-captures
• 作成日: 2019年1月26日
2. lambda-layer-for-nodej
• 作成日: 2024年6月29日
3. media-converted-game-captures
• 作成日: 2024年1月13日
バケットの所有者は "******" です。
おぉ!できている。
参考
- AWS CLI を使用した IAM アイデンティティセンター認証の設定
https://docs.aws.amazon.com/ja_jp/cli/latest/userguide/cli-configure-sso.html
おわりに
今まで、面倒くさくてアクセスキーを使っていたがセキュリティの観点からSSO
を使って作業をするようにしたかったので使ってみた。
セットアップは少し作業がいるがわかってしまえばこちらのほうが良い。
次回からはこれを使っていこう…!