waw*_*awa 3 amazon-s3 amazon-web-services terraform amazon-sagemaker terraform-provider-aws
我正在尝试按照此页面使用 terraform 在 SageMaker 上创建模型, 由于权限限制,我无法为 sagemaker 角色分配完整的访问策略,因此我创建了一个角色并附加了具有部分权限的策略
当我测试时Terraform plan
,它给了我这个:
Error: Invalid template interpolation value
...
Run Code Online (Sandbox Code Playgroud)
..........................
141: "ecr:GetRepositoryPolicy"
142: ],
143: "Resource": [
144: "arn:aws:s3:::${aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket}",
145: "arn:aws:s3:::${local.binaries_bucket_name}",
146: "arn:aws:s3:::${aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket}/*",
147: "arn:aws:s3:::${local.binaries_bucket_name}/*",
148: "arn:aws:ecr:us-east-1:*:repository/*",
149.....................
157: }
158: ]
159: }
160: POLICY
|----------------
| aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket is object with 25 attributes
Cannot include the given value in a string template: string required.
Run Code Online (Sandbox Code Playgroud)
我对此很陌生,只是想知道这是在抱怨存储桶名称太长还是其他原因?我该怎么办才能解决这个问题,我有点困惑。非常感谢。
(PS:Terraform版本v0.13.4
+提供商registry.terraform.io/hashicorp/aws v3.20.0
)
看来您在这里想要的是 S3 存储桶的 ARN,它由导出的资源属性提供。具体来说,您可能需要arn
资源属性。
更新您的政策,例如:
144: "${aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket.arn}",
146: "${aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket.arn}/*",
Run Code Online (Sandbox Code Playgroud)
将通过访问该属性为您提供所需的字符串arn
。当前编写的策略是 accessing aws_s3_bucket.xx_xxxxxxxxxx_xxx_bucket
,它是该资源的每个参数和属性的映射(可能是对象),并且不会在策略的字符串中进行插值。
归档时间: |
|
查看次数: |
18013 次 |
最近记录: |