🧑‍🤝‍🧑

AWS CLIで複数のIAMユーザーのアクセスキーを設定したい

2024/12/26に公開

備忘録です。
S3にファイルをPUTできない事態に陥り、調べたところアクセスキーを別のIAMユーザーのもので更新してしまったことが原因でした(マヌケ...)。
複数のIAMユーザーを設置できればいいのになぁと思い調べたら、やはり方法がありました。

1.デフォルトのIAMユーザー設定(1人目)

  • デフォルトで設定したいユーザーのアクセスキーIDとシークレットアクセスキーを用意します。これらはIAMユーザー作成時にCSVで落とすことができます。
  • AWS CLIがインストールされているコンソール(筆者はUbuntu)で以下のコマンドを実行します。
aws configure

以下の内容の入力が求められるので、用意したIDとキーを入力します。

AWS Access Key ID [None]: 用意したアクセスキーID(1人目)
AWS Secret Access Key [None]: 用意したシークレットアクセスキー(1人目)
Default region name [None]: ap-northeast-1
Default output format [None]: json

以上でデフォルトの設定が完了です。

2.別のIAMユーザー設定(2人目)

1人目と流れは同じですが、設定のコマンドは以下になります。

aws configure --profile プロファイル名
例)aws configure --profile iamwatson

これを実行すると、先程と同じく4項目の入力が求められます。

AWS Access Key ID [None]: 用意したアクセスキーID(2人目)
AWS Secret Access Key [None]: 用意したシークレットアクセスキー(2人目)
Default region name [None]: ap-northeast-1
Default output format [None]: json

以上で2人目の設定が完了です。

3.設定を確認

以下のコマンドで設定を確認できます。

cat ~/.aws/credentials

以下のように、2つのIAMユーザーが設定できていることが確認できます。

[default]
aws_access_key_id = xxxxxxxxxxxxxxxxxxxx
aws_secret_access_key = XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
[iamwatson]
aws_access_key_id = yyyyyyyyyyyyyyyyyyyy
aws_secret_access_key = YYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYYY

4.プロファイルを指定してコマンドを実行

例えば iamwatson でS3のバケットの一覧を出力したい場合は、以下のようにプロファイル指定してコマンドを実行します。

aws s3 ls --profile iamwatson

こうして、指定したアカウントのS3バケット一覧が表示されます。
--profile iamwatsonなしでコマンド実行した場合は、デフォルトでの実行となります。

Discussion