У меня есть скрипт terraform, который обеспечивает лямбда-функцию на aws для отправки электронных писем. Я собрал этот скрипт terraform из учебников и шаблонов в Интернете, чтобы использовать AWS SES, Api Gateway, Lambda и Cloudwatch.
Чтобы получить разрешения на работу, мне пришлось запустить скрипт, а затем, отдельно создайте политику в консоли AWS и примените ее к лямбда-функции, чтобы она могла полностью получить доступ к службам SES и Cloudwatch. Но мне совсем не ясно, как взять эту рабочую политику и адаптировать ее к моему сценарию terraform. Может ли кто-нибудь предоставить или указать руководство по этому вопросу?
Ограниченная / неадекватная, но в остальном рабочая роль в моем скрипте terraform выглядит следующим образом:
resource "aws_iam_role" "iam_for_lambda" {
name = "${var.role_name}"
assume_role_policy = <<EOF
{
"Version": "2012-10-17",
"Statement": [
{
"Action": "sts:AssumeRole",
"Principal": {
"Service": [
"lambda.amazonaws.com"
]
},
"Effect": "Allow",
"Sid": ""
}
]
} EOF
}
... и рабочая политика сгенерированный в консоли (путем объединения двух ролей для доступа all-Cloudwatch и all-SES):
{
"permissionsBoundary": {},
"roleName": "las_role_new",
"policies": [
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Action": [
"autoscaling:Describe*",
"cloudwatch:*",
"logs:*",
"sns:*",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:GetRole"
],
"Effect": "Allow",
"Resource": "*"
},
{
"Effect": "Allow",
"Action": "iam:CreateServiceLinkedRole",
"Resource": "arn:aws:iam::*:role/aws-service-role/events.amazonaws.com/AWSServiceRoleForCloudWatchEvents*",
"Condition": {
"StringLike": {
"iam:AWSServiceName": "events.amazonaws.com"
}
}
}
]
},
"name": "CloudWatchFullAccess",
"id": "ANPAIKEABORKUXN6DEAZU",
"type": "managed",
"arn": "arn:aws:iam::aws:policy/CloudWatchFullAccess"
},
{
"document": {
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"ses:*"
],
"Resource": "*"
}
]
},
"name": "AmazonSESFullAccess",
"id": "ANPAJ2P4NXCHAT7NDPNR4",
"type": "managed",
"arn": "arn:aws:iam::aws:policy/AmazonSESFullAccess"
}
],
"trustedEntities": [
"lambda.amazonaws.com"
]
}
Есть поля. Итак, мой вопрос вкратце, и в общих чертах, это:
с учетом «политики», встроенной в консоль aws (путем выбора группы ролей и т. Д. c. As in), как преобразовать ее в «роль», как требуется для сценария terraform?