Использование Terraform для создания бастиона AWS EC2

Я пытаюсь развернуть хост-бастион AWS на AWS EC2. Я использую модуль Terraform, предоставленный Guimove. Я застреваю на bastion_host_key_pairполе. Мне нужно предоставить пару ключей, которую можно использовать для запуска шаблона EC2, но сегмент ( aws_s3_bucket.bucket), который должен содержать открытый ключ пары ключей, создается во время модуля, поэтому ключа нет, когда он пытается запустить экземпляр, и он терпит неудачу. Это похоже на сценарий с курицей и яйцом, поэтому я, очевидно, делаю что-то не так. Что я делаю неправильно?

Ошибка:

      ╷
│ Error: Error creating Auto Scaling Group: AccessDenied: You are not authorized to use launch template: lt-004b0af2895c684b3
│       status code: 403, request id: c6096e0d-dc83-4384-a036-f35b8ca292f8
│
│   with module.bastion.aws_autoscaling_group.bastion_auto_scaling_group,
│   on .terraform\modules\bastion\main.tf line 300, in resource "aws_autoscaling_group" "bastion_auto_scaling_group":
│  300: resource "aws_autoscaling_group" "bastion_auto_scaling_group" {
│
╵

Терраформ:

      resource "tls_private_key" "bastion_host" {
  algorithm = "RSA"
  rsa_bits  = 4096
}

resource "aws_key_pair" "bastion_host" {
  key_name   = "bastion_user"
  public_key = tls_private_key.bastion_host.public_key_openssh
}

resource "aws_s3_bucket_object" "bucket_public_key" {
  bucket     = aws_s3_bucket.bucket.id
  key        = "public-keys/${aws_key_pair.bastion_host.key_name}.pub"
  content    = aws_key_pair.bastion_host.public_key
  kms_key_id = aws_kms_key.key.arn
}

module "bastion" {
  source = "Guimove/bastion/aws"
  bucket_name = "${var.identifier}-ssh-bastion-bucket-${var.env}"
  region = var.aws_region
  vpc_id = var.vpc_id
  is_lb_private = "false"
  bastion_host_key_pair = aws_key_pair.bastion_host.key_name
  create_dns_record = "false"
  elb_subnets = var.public_subnet_ids
  auto_scaling_group_subnets = var.public_subnet_ids
  instance_type = "t2.micro"
  tags = {
    Name = "SSH Bastion Host - ${var.identifier}-${var.env}",
  }
}

1 ответ

Я была такая же проблема. Исправление заключалось в том, чтобы войти в AWS Market Place, принять лицензионное соглашение и подписаться на AMI, который я пытался использовать.

Другие вопросы по тегам