Использование группы автомасштабирования aws, которая контролируется сервером, прогнозирует предстоящую нагрузку и масштабируется вверх / вниз в соответствии с ее потребностями. Серверу требуются разрешения на api автомасштабирования с наименьшим количеством необходимых привилегий.
Мои проблемы связаны с ограничением сервера использовать только определенную группу автомасштабирования, определенную для поля ресурса. Все примеры политик, которые я нашел до сих пор, используют только "*" в поле ресурса, что должно означать, что у него есть доступ ко всем группам автомасштабирования, если я не ошибаюсь.
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 запутана):
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: предположительная роль / имя_роли / идентификатор-экземпляра не авторизован для выполнения: автомасштабирование: DescribeAutoScalingGroups
Пока мне удалось запустить его только с использованием подстановочного знака внутри атрибута ресурса, любые подсказки приветствуются.
autoscaling:DescribeAutoScalingGroups
не может быть ограничен ключом ресурса или условия, но остальные 2 разрешения должны быть в порядке как есть. Я бы разделил их на отдельные утверждения в политике IAM, и тогда я думаю, что это должно сработать. - person ydaetskcoR   schedule 23.04.2020*
, но он доступен только для чтения, и в выводе этого вызова не должно быть ничего особенного секрета, поэтому я думаю, вы можете разделить операторы. - person ydaetskcoR   schedule 23.04.2020