как включить консольный вход для пользователя IAM в terraform - PullRequest
0 голосов
/ 29 ноября 2018

Я новичок в созданной пользователем terraform IAM с файлом terraform, указанным ниже, но когда в консоли aws отображается сообщение о том, что вход в консоль не активирован, прикрепите изображение, пожалуйста, помогите, как включить пароль.

resource "aws_iam_user" "lb" {

name = "${var.user_name}"

  # path = "/system/"
  # tags = {
  #   tag-key = "tag-value"
  # }
}

resource "aws_iam_access_key" "lb" {
  user = "${aws_iam_user.lb.name}"
}

resource "aws_iam_user_policy" "lb_ro" {
  name = "test"
  user = "${aws_iam_user.lb.name}"

  policy = <<EOF
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Action": [
        "ec2:Describe*"
      ],
      "Effect": "Allow",
      "Resource": "*"
    }   
  ]
}
EOF
}

resource "aws_iam_user_login_profile" "u" {
  user                    = "${aws_iam_user.lb.name}"
  password_reset_required = true
  pgp_key                 = "${base64encode(file("/Terraform_practice/iam_terra/oli.gpg.pubkey"))}"

  # pgp_key = "keybase:deekshithsn"
}

output "password" {
  value = "${aws_iam_user_login_profile.u.encrypted_password}"
}

введите описание изображения здесь

1 Ответ

0 голосов
/ 29 ноября 2018

Hii Я разобрался с проблемой, чтобы создать пользователя Iam с включенным доступом к консоли, вам нужно установить базу ключей при посещении операционной системы для получения дополнительной информации

Загрузка базы ключей

Затем вам нужно создать pgp-ключ в вашей локальной секретной цепочке ключей, используя эту команду

keybase pgp gen

Затем введите ссылку на этот созданный ключ в ваш файл terraform, как это

provider "aws" {
  region                  = "us-east-1"
  shared_credentials_file = "/home/username/.aws/credentials"
  profile                 = "default"
}

resource "aws_iam_user" "u" {
  name          = "terraform"
  path          = "/"
  force_destroy = true
}

resource "aws_iam_user_login_profile" "u" {
  user    = "${aws_iam_user.u.name}"
  pgp_key = "keybase:your_keybase_username"
}

output "password" {
  value = "${aws_iam_user_login_profile.u.encrypted_password}"
}

затем он делает

terraform apply

, затем terraform выведет пароль в зашифрованном виде, который необходимо расшифровать с помощью следующей команды

terraform output password | base64 --decode | keybase pgp decrypt

Я проверил это, и он работает нормально, позвольте мнезнать, поможет ли это

...