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
}
По сути, он создает роль с именем NewRelicInfrastructure-Integrations
с двумя связанными с ней IAM-политиками.
Первая политика позволяет вызывать sts:AssumeRole
действие и проверяет, что ExternalId
соответствует новому идентификатору учетной записи Reli c.
Вторая политика предоставляет ReadOnlyAccess
предполагаемой роли.