Как создать роль AutoScaling IAM, которая ограничивает ресурсы? - PullRequest
0 голосов
/ 07 мая 2020

Если я создаю настраиваемую политику автомасштабирования и пытаюсь ограничить только статистику ресурсов с помощью KJ, при создании статуса автомасштабирования EMR происходит сбой, вместо этого, если я укажу "*", тогда все будет работать нормально .. есть что-то, что я отсутствует в приведенном ниже коде политики?

    resource "aws_iam_policy" "aut_policy" {
      name        = "test_autoscale_policy"
      #path        = "/"
      description = ""

      policy = <<EOF
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Action": [
                    "cloudwatch:DescribeAlarms",
                    "elasticmapreduce:ListInstanceGroups",
                    "elasticmapreduce:ModifyInstanceGroups"
                ],
          "Effect": "Allow",
          "Resource": [
                       "arn:aws:elasticmapreduce:*:*:kj*",
                       "arn:aws:ec2:*:*:kj*",
                       "arn:aws:events:*:*:kj*",
                       "arn:aws:dynamodb:*:*:table/kj*",
                       "arn:aws:cloudwatch:*:*:kj*"]
        }
      ]
    }
    EOF
    }

Как создать роль AutoScaling IAM, которая ограничивает ресурсы?

1 Ответ

0 голосов
/ 08 мая 2020

Действия IAM elasticmapreduce: ListInstances и elasticmapreduce: ModifyInstanceGroups оба требуют cluster* ARN ресурсов, которые выглядят следующим образом:

arn:${Partition}:elasticmapreduce:${Region}:${Account}:cluster/${ClusterId}

Обеспечение ARN ресурса шаблон, подобный приведенному ниже, не будет соответствовать поддерживаемым ресурсам и НЕ будет разрешать автоматическое масштабирование для вызова этих API-интерфейсов Elasti c MapReduce на ваших ресурсах:

arn:aws:elasticmapreduce:*:*:kj*

Следующий cluster* ARN ресурса, надеюсь, будет работать:

arn:aws:elasticmapreduce:*:*:cluster/kj*

Действие IAM cloudwatch: DescribeAlarms требует alarm* ARN ресурса, который выглядит следующим образом:

arn:${Partition}:cloudwatch:${Region}:${Account}:alarm:${AlarmName}

Предоставление шаблона ARN ресурса, подобного следующему, не будет соответствовать поддерживаемых ресурсов и НЕ будет разрешать автоматическое масштабирование для вызова этого CloudWatch API на ваших ресурсах:

arn:aws:cloudwatch:*:*:kj*

Следующий alarm* ARN ресурса, надеюсь, будет работать:

arn:aws:cloudwatch:*:*:alarm:kj*

Следующие ARN ресурса указаны, но их действия не совпадают (безобидно, но сбивает с толку):

"arn:aws:ec2:*:*:kj*",
"arn:aws:events:*:*:kj*",
"arn:aws:dynamodb:*:*:table/kj*",

I высоко r Рекомендуем ограничить учетную запись в ARN. Это, вероятно, самое важное ограничение, поскольку любая другая учетная запись может создавать ресурсы, начиная с kj .

Подробнее о действиях, ресурсах и ключах условий для Amazon Elasti c MapReduce здесь:

https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazonelasticmapreduce.html

Подробнее о действиях, ресурсах и ключах условий для Amazon CloudWatch можно узнать здесь:

https://docs.aws.amazon.com/IAM/latest/UserGuide/list_amazoncloudwatch.html#amazoncloudwatch -тревога

...