AWS CLIのdefaultプロファイルをIAMユーザーからIAM Identity Centerユーザーに変更する

AWS初学者です。

AWS CLIに紐づくデフォルトのプロファイルをIAMユーザーからIAM Identity Centerユーザーに変更したかったです。

その際に手間取ってしまったため、備忘録としてまとめます。

目次

問題

過去のAWS学習時にAWS CLIのデフォルトのプロファイルとしてIAMユーザーを設定していました。

コマンドを打って確認してみます。

$ aws sts get-caller-identity
{
    "Account": "123456789012",
    "UserId": "ABCDEFGHIJKLMNOPQRSTUV",
    "Arn": "arn:aws:iam::123456789012:user/test"
}

今回の学習ではIAMユーザーではなく、すでに作成済みのIAM Identity Centerユーザーを使用しています。

そのためAWS CLIへ紐付けるデフォルトのプロファイルもIAM Identity Centerユーザーの情報へ変更する必要がありました。

解決策

AWS CLIのdefaultというプロファイルにIAM Identity Centerユーザーの情報を設定することで解決できました。

具体的な手順は次のとおりです。

1. defaultプロファイルの設定

具体的にはaws configure sso --profile defaultを実行して流れにしたがいます。

$ aws configure sso --profile default
SSO session name (Recommended): default
SSO start URL [None]: https://a-123456bcde.awsapps.com/start/
SSO region [None]: ap-northeast-1
SSO registration scopes [sso:account:access]: 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:

https://device.sso.ap-northeast-1.amazonaws.com/

Then enter the code:

ABCD-EFGH
The only AWS account available to you is: 123456789012
Using the account ID 123456789012
The only role available to you is: AdministratorAccess
Using the role name "AdministratorAccess"
CLI default client Region [None]: ap-northeast-1
CLI default output format [None]: json

To use this profile, specify the profile name using --profile, as shown:

aws s3 ls --profile default

$ 

~/.aws/configファイルの[default]に入力した内容が登録されていれば成功です。

[default]
sso_session = default
sso_account_id = 123456789012
sso_role_name = AdministratorAccess
region = ap-northeast-1
output = json

2. 旧IAM ユーザー情報の削除

次に~/.aws/credentials ファイルから default プロファイルの IAM ユーザーの認証情報をコメントアウトか削除します。

[default]
# aws_access_key_id = ABCDEFGHIJKLMNOPQRSTUV
# aws_secret_access_key = hogehogehogehogehogehogehogehogehogehoge

※この手順は不要かもしれません。

3. 動作確認

最後にもう一度コマンドを打って、IAM Identity Centerユーザーの認証情報がAWS CLIと紐づいているか確認します。

$ aws sts get-caller-identity                     
{
    "UserId": "HOGEHOGEHOGEHOGEHOGE:test-user",
    "Account": "123456789012",
    "Arn": "arn:aws:sts::123456789012:assumed-role/AWSReservedSSO_AdministratorAccess_1234hogehoge1234hogehoge/test-user"
}

きちんと紐づいていました!

おわりに

手順としてはこれで良いものの、AWSの権限や認証まわりはまだ頭の中にメンタルモデルが形成できていない感覚です。

手を動かしながら、理解を深めていく所存です。参考資料

参考文献

あわせて読みたい
IAM Identity Center 認証 AWS CLI を使用して を設定する - AWS Command Line Interface このセクションでは、 IAM Identity Center でユーザーを認証 AWS CLI して AWS CLI コマンドを実行するための認証情報を取得するように を設定する手順について説明します...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

未経験でSESから従業員300名以上の自社開発企業に転職しました。業務や個人開発で直面した問題や、転職・学習の経験を発信していきます。

コメント

コメントする

目次