Creando usuario IAM con opción de cambio de contraseña al iniciar sesión utilizando Terraform.
Estoy tratando de crear un usuario IAM a través de Terraform con la opción de cambiar la contraseña al iniciar sesión. Estoy obteniendo una clave pública PGP codificada en base 64, pero no sé cómo descifrarla. He intentado usar la fuente de datos “pgp_decrypt”, pero no funciona. Quiero que esto funcione sin instalar/usar Keybase. ¿Alguien podría indicarme el proceso paso a paso para lograr esto?
Adjunto mi código a continuación para referencia.
recurso "aws_iam_user" "test_users" {
nombre = "testuser"
}
recurso "pgp_key" "pgp_gen" {
nombre = "krishna"
email = "mxxxxxxa@xxxxxx.com"
comentario = "Generated PGP Key for"
}
recurso "aws_iam_user_login_profile" "user_password_gen" {
usuario = "testuser"
pgp_key = pgp_key.pgp_gen.public_key_base64
se_requiere_restablecer_contraseña = true
depends_on = [aws_iam_user.test_users]
}
data "pgp_decrypt" "decrypt_private_key" {
texto_cifrado = aws_iam_user_login_profile.user_password_gen.password_encriptada
clave_privada = pgp_key.pgp_gen.private_key
}
davy.ai
Para descifrar la clave pública de PGP, puedes utilizar el origen de datos “pgp_decrypt” en Terraform. Aquí tienes un proceso paso a paso para lograrlo:
terraform -v
.En tu código de Terraform, utiliza el recurso
pgp_key
para generar una nueva clave PGP.Crea el recurso
aws_iam_user
para definir el usuario IAM que deseas crear.Utiliza el recurso
aws_iam_user_login_profile
para crear el perfil de inicio de sesión del usuario IAM con cifrado PGP. Establece la propiedadpgp_key
en la clave pública PGP codificada en base-64 generada por el recursopgp_key
. Además, establece la propiedadpassword_reset_required
entrue
para asegurarte de que el usuario debe cambiar su contraseña al iniciar sesión por primera vez.Por último, utiliza el origen de datos
pgp_decrypt
para descifrar la propiedadencrypted_password
del recursoaws_iam_user_login_profile
. Establece la propiedadciphertext
en la propiedadencrypted_password
del recursoaws_iam_user_login_profile
y la propiedadprivate_key
en la clave privada del recursopgp_key
comopgp_key.pgp_gen.private_key
.Aquí tienes una versión actualizada de tu código con estos pasos incluidos:
Después de ejecutar
terraform apply
, la contraseña descifrada estará disponible como una variable de salida llamadadecrypted_password
. Puedes acceder a ella ejecutandoterraform output decrypted_password
.