AWS プログラミング

TerraformでIAMユーザーにパスワード変更権限を付ける(IAMUserChangePassword)

更新日:

Terraformで管理しているユーザーに初回ログイン時のパスワード変更権限を付ける時。

AWSで予め用意しているポリシーに「IAMUserChangePassword」があります。

 

これをTerraformから使用する場合の方法として、以下の2通りの方法があるのでそのメモです。

 

  • 「IAMUserChangePassword」のARNを直接指定しアタッチする。
  • 作成するポリシーのアクションに、「iam:ChangePassword」と「iam:GetAccountPasswordPolicy」を追加する。

 

以下、それぞれの書き方です。

 

「IAMUserChangePassword」のARNを直接指定しアタッチする。

こちらは簡単なパターン。

 

 

アタッチしたいユーザーやグループに直接ARNを指定するだけです。

 

ポリシーに「iam:ChangePassword」と「iam:GetAccountPasswordPolicy」を追加する。

こちらの使いどころとしては、グループにアタッチするポリシーを自作していて、

そのグループに対する権限周りは1つにまとめたい。とかって時(だと思っている。)

 

要は、「自作したポリシー」と「IAMChangePassword」の2つのアタッチをしたくない時

 

 

こんな感じで、ポリシーの内容に追加してあげます。

どうしてこうなるかというと、「IAMUserChangePassword」のポリシー内容の実態が上記だからです。

 

1つ注意点として、iam:ChangePasswordのresourcesにuserのARNを指定するのですが以下のように$$もしくは&を使用する必要があります。

 

arn:aws:iam::*:user/$${aws:username}

 

arn:aws:iam::*:user/&{aws:username}

 

理由としては、terraformにより$が展開されてしまうのですが、最終的なポリシーのJSON上では「arn:aws:iam::*:user/$${aws:username}」となる必要があるためです。

なぜ&でもOKなのかあまりわかってません。(githubのissueに書いてありました)

 

 

Terraformを学びたい方へ

Terraformをきちんと学びたい方はUdemyのLearn DevOps: Infrastructure Automation With Terraform がとてもおすすめです。コスパ最高です。

よければ参考にしてみてください。

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

-AWS, プログラミング
-,

Copyright© クラインの備忘壺 , 2020 All Rights Reserved.