Terraform将AMI权限设置为公共

时间:2018-06-19 22:27:32

标签: amazon-web-services terraform ami

我当前正在使用Terraform使用以下方法将AMI从一个区域复制到多个区域:

resource "aws_ami_copy" "my_ami" {
  name              = "my_ami-${var.region}"
  source_ami_id     = "${var.source_ami_id}"
  source_ami_region = "${var.source_ami_region}"
}

我需要公开此AMI,我已经在网上查看,但找不到使用Terraform进行此操作的方法。

1 个答案:

答案 0 :(得分:1)

Terraform当前没有本地方法可以执行此操作。通常,您可以使用aws_ami_launch_permission resource使用Terraform与另一个帐户共享AMI,但这仅支持添加特定帐户,而不支持将其公开的all组。

您始终可以使用local-exec预配器将AWS CLI to make the AMI public插入以下内容:

resource "null_resource" "share_ami_publicly" {
  provisioner "local-exec" {
    command = "aws ec2 modify-image-attribute --image-id ami-12345678 --launch-permission '{\"Add\":[{\"Group\":\"all\"}]}'"
  }
}

预配置程序可以附加到任何相关资源的位置(例如aws_ami resource,如果您正在使用它来创建AMI)。