gpt4 book ai didi

amazon-web-services - Terraform:将 AWS 托管策略附加到角色的正确方法?

转载 作者:行者123 更新时间:2023-12-03 06:02:08 26 4
gpt4 key购买 nike

我想将预先存在的 AWS 托管角色之一附加到策略,这是我当前的代码:

resource "aws_iam_role_policy_attachment" "sto-readonly-role-policy-attach" {
role = "${aws_iam_role.sto-test-role.name}"
policy_arn = "arn:aws:iam::aws:policy/ReadOnlyAccess"
}

是否有更好的方法对托管策略进行建模,然后引用它,而不是对 ARN 进行硬编码?似乎每当我对 ARN/路径或其他类似内容进行硬编码时,我通常会稍后发现有更好的方法。

Terraform 中是否已经存在可以对托管策略进行建模的内容?或者对 ARN 进行硬编码是“正确”的方法吗?

最佳答案

IAM Policy data source非常适合这个。数据资源用于描述 Terraform 不主动管理但由 Terraform 引用的数据或资源。

对于您的示例,您将为托管策略创建数据资源,如下所示:

data "aws_iam_policy" "ReadOnlyAccess" {
arn = "arn:aws:iam::aws:policy/ReadOnlyAccess"
}

数据源的名称(在本例中为ReadOnlyAccess)完全由您决定。对于托管策略,为了保持一致性,我使用与策略名称相同的名称,但如果适合您,您也可以轻松地将其命名为 readonly

然后,您可以将 IAM 策略附加到您的角色,如下所示:

resource "aws_iam_role_policy_attachment" "sto-readonly-role-policy-attach" {
role = "${aws_iam_role.sto-test-role.name}"
policy_arn = "${data.aws_iam_policy.ReadOnlyAccess.arn}"
}

关于amazon-web-services - Terraform:将 AWS 托管策略附加到角色的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45002292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com