Использование группы автоматического масштабирования aws, которая контролируется сервером, прогнозируя предстоящую загрузку и увеличивая / уменьшая ее до требуемых. Серверу нужны разрешения для автомасштабирования API с наименьшим количеством необходимых привилегий.
Мои проблемы связаны с ограничением использования сервером только указанной c группы автоматического масштабирования, определенной над полем ресурса. Все примеры политики, которые я нашел до сих пор, используют только «*» в поле ресурса, что должно означать, что он имеет доступ ко всем группам автоматического масштабирования, если я не ошибаюсь.
data "aws_iam_policy_document" "default" {
statement {
sid = "S3PolicyStmtNodeAutoscalingApiCalls"
effect = "Allow"
actions = [
"autoscaling:DescribeAutoScalingGroups",
"autoscaling:SetDesiredCapacity",
"autoscaling:TerminateInstanceInAutoScalingGroup"
]
resources = [ var.autoscaling_group_arn ]
}
}
Реализовано с помощью terraform, это переводит в следующую политику json (группа автоматического масштабирования arn obfuscated):
resource "aws_iam_policy" "aws_api_access" {
arn = "arn:aws:iam::123456789123:policy/aws-api-access"
id = "arn:aws:iam::123456789123:policy/aws-api-access"
name = "aws-api-access"
path = "/"
policy = jsonencode({
Statement = [
{
Action = [
"autoscaling:TerminateInstanceInAutoScalingGroup",
"autoscaling:SetDesiredCapacity",
"autoscaling:DescribeAutoScalingGroups",
]
Effect = "Allow"
Resource = "arn:aws:autoscaling:region:acountid:autoScalingGroup:id:autoScalingGroupName/name"
Sid = "S3PolicyStmtAutoscalingApiCalls"
}
]
Version = "2012-10-17"
})
}
Ошибка AccessDenied: Пользователь: arn: aws: sts: : id: предполагаемая роль / role_name / i-instance-id не разрешено выполнять: autoscaling: DescribeAutoScalingGroups
До сих пор я только запускал его, используя подстановочный знак внутри атрибута ресурса, любые подсказки приветствуются.