Я хочу создать ключ KMS с помощью CloudFormation.Я хочу предоставить пользователю, выполняющему файл YAML облачной информации (я назову его «cloudformation-runner»), административный доступ к создаваемому им ключу.
Я могу настроить политику IAM, чтобы обеспечитьпользовательский («cloudformation-runner») доступ к API администрирования KMS.Однако для того, чтобы пользователь мог обновить / удалить только что созданный ключ, мне также необходимо указать KeyPolicy , который позволит ему это сделать.Чтобы сделать это, как я могу получить текущее имя пользователя («cloudformation-runner») в скрипте CloudFormation?
Вот как выглядит мой шаблон для ключа KMS, как мне получить текущего пользователя в качестве принципала?
MyKey:
Type: AWS::KMS::Key
Properties:
Description: "..."
KeyPolicy:
Version: "2012-10-17"
Id: "MyId"
Statement:
-
Sid: "Allow administration of the key"
Effect: "Allow"
Principal:
AWS:
- # TODO: Get Current User
Action:
- "kms:Create*"
- "kms:Describe*"
- "kms:Enable*"
- "kms:List*"
- "kms:Put*"
- "kms:Update*"
- "kms:Revoke*"
- "kms:Disable*"
- "kms:Get*"
- "kms:Delete*"
- "kms:ScheduleKeyDeletion"
- "kms:CancelKeyDeletion"
Resource: "*"
Я могу вручную указать ARN для пользователя IAM.Однако это делает шаблон менее переносимым, поскольку пользователям необходимо вручную обновить имя пользователя в этом файле.