Zes*_*r07 2 amazon-web-services newrelic amazon-iam terraform
我的要求是将我们的 AWS 帐户与 NewRelic 与 Terraform 集成,我能够使用控制台访问将 AWS 帐户与 NewRelic 链接,作为先决条件,我需要创建 IAM 角色,并在 New-Relic 帐户中包含可信实体,请执行以下步骤下面列出
转至基础设施.newrelic.com > AWS。单击可用的服务图块之一即可开始。
在 IAM 控制台中,单击创建角色,然后单击另一个 AWS 账户。
对于帐户 ID,请使用 7XXXXXXXXXX。选中需要外部 ID 框。对于外部 ID,输入您的 New Relic 帐户 ID。
请勿启用“需要 MFA”(多重身份验证)的设置。附加策略:搜索 ReadOnlyAccess,选中名为 ReadOnlyAccess 的策略的复选框,然后单击下一步:查看。或者,您可以创建自己的托管策略,并根据您要监控的 AWS 服务限制授予 New Relic 的权限。对于角色名称,输入 NewRelicInfrastruct-Integrations,然后单击创建角色。
我的要求是对 Terraform 脚本执行相同的操作,我探索了 https://www.terraform.io/docs/providers/aws/r/iam_role.html,但无法找到一些与上面列出的步骤相同的相关选项(例如包含另一个 AWS 帐户)。
Terraform 提供了一个aws_iam_policy_document可能有用的数据源。我相信以下配置可以帮助您:
data "aws_iam_policy_document" "assume_role" {
statement {
actions = [
"sts:AssumeRole"
]
condition {
test = "StringEquals"
values = [
"New Relic Account ID"
]
variable = "sts:ExternalId"
}
effect = "Allow"
principals {
identifiers = [
"7XXXXXXXXXX"
]
type = "AWS"
}
}
}
resource "aws_iam_role" "new_relic" {
assume_role_policy = data.aws_iam_policy_document.assume_role.json
name = "NewRelicInfrastructure-Integrations"
}
resource "aws_iam_role_policy_attachment" "read_only_access" {
policy_arn = "arn:aws:iam::aws:policy/ReadOnlyAccess"
role = aws_iam_role.new_relic.name
}
Run Code Online (Sandbox Code Playgroud)
NewRelicInfrastructure-Integrations本质上,它创建一个以两个与其关联的 IAM 策略命名的角色。
第一个策略允许调用该sts:AssumeRole操作并验证该操作是否ExternalId与 New Relic 帐户 ID 匹配。
第二个策略授予ReadOnlyAccess所承担的角色。
| 归档时间: |
|
| 查看次数: |
1815 次 |
| 最近记录: |