Как создать корневую учетную запись ARS ARN в CloudFormation? - PullRequest
0 голосов
/ 04 июня 2018

Ситуация

Я создаю ключ KMS в CloudFormation.Согласно документации политики KMS крайне важно создать политику, в которой Principal является самой учетной записью, чтобы политики IAM могли предоставлять доступ к ключу.

Вопрос

Как создать ARN для корня учетной записи в CloudFormation?

Ответы [ 2 ]

0 голосов
/ 04 июня 2018

Для тех, кто использует YAML для своих шаблонов CloudFormation:

!Sub arn:aws:iam::${AWS::AccountId}:root
0 голосов
/ 04 июня 2018

Ответ

{  
   "Fn::Join":[  
      ":",
      [  
         "arn:aws:iam:",
         {  
            "Ref":"AWS::AccountId"
         },
         "root"
      ]
   ]
}

Почему это работает?

Сначала давайте рассмотрим строку, "Ref":"AWS::AccountId".Это ссылка псевдопараметра , которая является причудливым способом сказать, что это параметр, который поставляется из коробки с CloudFormation.Таких параметров много.Этот случай дает нам идентификатор учетной записи, который имеет решающее значение для построения ARN.

Теперь остальное - просто создание ARN с использованием этого идентификатора учетной записи.Fn::Join - это просто встроенная в CloudFormation , которая позволяет объединять строки.Это очень важно при объединении ссылок со строковыми константами (или другими ссылками), как мы делаем здесь.

В результате получается что-то вроде ...

arn:aws:iam::123456789012:root
...