9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

aws-cliでIAMユーザーの変更ができなかった話

Last updated at Posted at 2022-09-01

はじめに

IAMユーザーを新しく作成し、aws-cli上でもIAMユーザーとして設定しようとしたところうまく登録できませんでした。
それまで使用していた古いIAMユーザーが設定されていることが原因で変更できなかったのですが、解決したので備忘録として残したいと思います。
お気付きの点があれば教えてください。

課題

新しく作ったIAMユーザーをaws-cliのIAMユーザーとして登録できない。
旧IAMユーザーを上書きできない。

手順

まず現状のaws-cliでの権限を確認するために次のコマンドを実行します。

aws sts get-caller-identity

すると現状のどの権限で操作をしているかが確認できます。

{
    "UserId": "AKIA4KB4UX5XPJRUGBIS",
    "Account": "************",
    "Arn": "arn:aws:iam::************:user/Silva-Zoldyck"
}

旧IAMユーザーの情報が表示されています。

IAMユーザーを新たに作成します。
今回はAWSマネジメントコンソール上で作成します。

IAMユーザー作成の画面からAdd usersをクリックします。
Image from Gyazo
User nameを入力し、Access keyにチェックをつけます。
Image from Gyazo
Policyを選択します。今回はAWSが準備しているものを利用します。
Image from Gyazo
IAMユーザーを作成するとAccess Key IDとSecret access keyが表示されるのでコピーしておきます。
faaff1f225c6b0bf8e95c868d99213c8.png
aws-cliに設定します。
.awsディレクトリ内のcredentialsファイルを開きます。

vim ~/.aws/credentials

先ほどコピーしたAccess Key IDとSecret access keyを変更します。
9565dc70543c9aad29633386542da61d.png

これで設定変更完了!
IAMユーザーがの変更が完了しているはず。
再度コマンドを実行

aws sts get-caller-identity
{
    "UserId": "AKIA4KB4UX5XPJRUGBIS",
    "Account": "************",
    "Arn": "arn:aws:iam::************:user/Silva-Zoldyck"
}

が、なぜか変わっていない・・・

そうか!以前のAccess Key IDとSecret access keyが環境変数として残っているからだ!

.zshrc
export AWS_ACCESS_KEY_ID="AKIA4KB4UX5XPJRUGBIS"
export AWS_SECRET_ACCESS_KEY="***************************************"

これを削除すればうまくいくはず!

・・・しかし、削除しても変更されていない。

解決

次のコマンドを入力することで解決しました。

unset AWS_ACCESS_KEY_ID
unset AWS_SECRET_ACCESS_KEY

unsetは関数や変数を削除してくれるコマンドです。

{
    "UserId": "AIDA4KB4UX5XLYWOWW4FV",
    "Account": "************",
    "Arn": "arn:aws:iam::************:user/Chrollo-Lucilfer"
}

無事に変更されています!

  • @RubiconLink さんより教えていただいたので補足

AWSの公式の「構成設定と優先順位」には次のように記されています。

AWS CLI は、システム環境変数、ユーザー環境変数、ローカルの AWS 設定ファイル、またはコマンドラインでパラメータとして明示的に宣言されたものなど、複数の場所にある認証情報と構成設定を使用します。特定の場所が他の場所よりも優先されます。AWS CLI 認証情報と構成設定は、次の順序で優先されます。

  1. コマンドラインオプション
  2. 環境変数
  3. CLI 認証情報ファイル
  4. CLI 設定ファイル
  5. コンテナ認証情報
  6. Amazon EC2 インスタンスプロファイルの認証情報

今回私が設定値を更新していたcredentialsファイルは3に該当します。
2の環境変数よりも優先順位が低かったため、unsetで削除してあげることで更新することができたということでしょう。

おわりに

今回のようにIAMユーザーを変更することはなかなかないかもしれませんが、もしもうまくいかないかなかった場合は試してみてください。

参考

9
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
9
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?