我正在为AWS执行Terraform的第一步,我想创建一个S3存储桶,并将"阻止所有公共访问"设置为ON。
版本:
Terraform版本0.12.24+provider.aws v2.60.0
文件提供程序.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的引用不正确。
更改:
bucket = "aws_s3_bucket.<myname>.id"
收件人:
bucket = aws_s3_bucket.<myname>.id
没有双引号,因为您正在引用另一个资源