Terraform を使った IAM ユーザー管理方法
手順
システム管理者
GPGを使って
PGP を使って公開鍵を作成する
code:sh
gpg --gen-key
pgp -o master.public.gpg --export master
IAMユーザーをリソースを使って、追加したいユーザーを定義
code:iam.tf
resource "aws_iam_user" "user" {
name = var.user_name
force_destroy = true
}
resource "aws_iam_user_group_membership" "developers" {
user = aws_iam_user.user.name
groups = [
aws_iam_group.developers.name
]
}
resource "aws_iam_user_login_profile" "login_profile" {
user = aws_iam_user.user.name
pgp_key = filebase64("./cert/master.public.gpg")
password_length = 20
password_reset_required = true
}
output "password" {
value = aws_iam_user_login_profile.login_profile.encrypted_password
}
上記で terraform apply を実行する
apply 実行結果、もしくは terraform output -raw password で暗号化された初期パスワードを取得する。
把握した初期パスワードをgpg -r master --decriptコマンドを使って秘密鍵で複合化し、パスワードを把握する。
このパスワードとIAMユーザーIDを新規ユーザーに共有する
このあとに新規ユーザー側でパスワードリセット操作をしてもらうために、IAMポリシーは適用しておく必要がある
新規ユーザー
AWSマネジメントコンソールのログイン画面で、システム管理者から受け取った初期パスワードとIAMユーザーIDでログインをし、パスワードを再設定をして