目的
- keybaseとaws_iam_user_login_profileを使ってIAMUserにログインパスワードを設定し、マネジメントコンソールログインを有効化する
前提
- keybaseでPGP-key作成済
設定
-
iam_user_login_profile.tf
でkeybaseアカウントを記述することでterraform.tfstate
に暗号化されたパスワードが記述される
iam_user_login_profile.tf
resource "aws_iam_user_login_profile" "<iam-user-name>" {
user = "${aws_iam_user.<iam-user-name>}"
pgp_key = "keybase:<keybase-user-name>"
}
output "password" {
value = "${aws_iam_user_login_profile.<iam-user-name>.encrypted_password}"
}
- SecretAccessKeyも暗号化
iam_user.tf
resource "aws_iam_user" "<iam-user-name>" {
name = "<iam-user-name>"
}
resource "aws_iam_access_key" "<iam-key-name>" {
user = "${aws_iam_user.<iam-user-name>.name}"
pgp_key = "keybase:<keybase-user-name>"
}
確認
- applyすると暗号化されたパスワードが出力されます
password = (snip)dfhsdhsdcFM(snip)twA
secret = (snip)FMA9vdyK9wzqFf(snip)LwA=
- 復号化
$ terraform output password | base64 -d | gpg -r <pgp-key>
(snip)
*************
$ terraform output secret | base64 -d | gpg -r <pgp-key>
(snip)
*************
所感
- keybase対応は、凄い刺さります!