aws_s3_bucket_public_access_block 应用 terraform 时创建失败
aws_s3_bucket_public_access_block fails to create while terraform apply
我正在为 AWS 进行 Terraform 的第一步,我想创建一个 S3 存储桶并将 "block all public access" 设置为 ON。
版本:
Terraform v0.12.24
+ provider.aws v2.60.0
文件provider.tf
provider "aws" {
region = "eu-west-1"
profile = "<myprofile>"
}
文件s3.tf
resource "aws_s3_bucket" "<myname>" {
bucket = "<myname>"
region = "eu-west-1"
}
resource "aws_s3_bucket_public_access_block" "<myname>" {
bucket = "aws_s3_bucket.<myname>.id"
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
<> 中的值是我自己的值,如果它与我的文件中的值相同,我在这里使用相同的示例值(因此在 s3.tf 文件中它只是所有变量的一个名称)
如果我做一个
terraform apply
它会创建所有东西,但是在 "aws_s3_bucket_public_access_block" 大约 1 分钟后它会超时并告诉我:
Error: error creating public access block policy for S3 bucket (aws_s3_bucket.<myname>.id): NoSuchBucket: The specified bucket does not exist
status code: 404
我也尝试添加
depends_on = [ aws_s3_bucket.<myname> ]
在 "aws_s3_bucket_public_access_block" 但它也不起作用。
我搜索了又试了又搜索,但没有任何效果。
有人报告了一个关于它的错误并告诉我必须在 .env 文件中全局设置 AWS_REGION,试过了但也没有用。
您对 S3 存储桶的引用不正确。
变化:
bucket = "aws_s3_bucket.<myname>.id"
收件人:
bucket = aws_s3_bucket.<myname>.id
没有双引号,因为您正在引用另一个资源
我正在为 AWS 进行 Terraform 的第一步,我想创建一个 S3 存储桶并将 "block all public access" 设置为 ON。
版本:
Terraform v0.12.24 + provider.aws v2.60.0
文件provider.tf
provider "aws" {
region = "eu-west-1"
profile = "<myprofile>"
}
文件s3.tf
resource "aws_s3_bucket" "<myname>" {
bucket = "<myname>"
region = "eu-west-1"
}
resource "aws_s3_bucket_public_access_block" "<myname>" {
bucket = "aws_s3_bucket.<myname>.id"
block_public_acls = true
block_public_policy = true
ignore_public_acls = true
restrict_public_buckets = true
}
<> 中的值是我自己的值,如果它与我的文件中的值相同,我在这里使用相同的示例值(因此在 s3.tf 文件中它只是所有变量的一个名称)
如果我做一个
terraform apply
它会创建所有东西,但是在 "aws_s3_bucket_public_access_block" 大约 1 分钟后它会超时并告诉我:
Error: error creating public access block policy for S3 bucket (aws_s3_bucket.<myname>.id): NoSuchBucket: The specified bucket does not exist
status code: 404
我也尝试添加
depends_on = [ aws_s3_bucket.<myname> ]
在 "aws_s3_bucket_public_access_block" 但它也不起作用。
我搜索了又试了又搜索,但没有任何效果。 有人报告了一个关于它的错误并告诉我必须在 .env 文件中全局设置 AWS_REGION,试过了但也没有用。
您对 S3 存储桶的引用不正确。
变化:
bucket = "aws_s3_bucket.<myname>.id"
收件人:
bucket = aws_s3_bucket.<myname>.id
没有双引号,因为您正在引用另一个资源