Политика IAM для предоставления доступа только к псевдонимам Amazon
В KMS есть ключи с псевдонимами Amazon (например,/alias/aws/s3
) и мастер-ключи клиента (CMK).
Для каждой команды разработчиков у меня есть несколько CMK с псевдонимами (например, /alias/team1/default
, /alias/team1/confidential
)
Я хотел бы разрешить доступ к псевдонимам aws всем пользователям / группам / ролям IAM, но предоставить доступ на уровне команды к ключам на уровне команды
Моя проблема возникает при попытке разрешить доступ к управляемым ключам AWS
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"NotAction": [
"iam:*",
"kms:*"
],
"Resource": "*",
"Condition": {
"Null": {
"aws:MultiFactorAuthAge": "false"
}
}
},
{
"Effect": "Allow",
"Resource": "arn:aws:kms:us-east-1:111111111111:alias/aws/*",
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Condition": {
"Null": {
"aws:MultiFactorAuthAge": "false"
}
}
}
]
}
Предоставить неявный отказ iam:*
а также kms:*
, но разрешить доступ к ключам с псевдонимами aws
При работе с имитатором политики IAM похоже, что я должен предоставить доступ к полному ключу arn (arn:aws:kms:us-east-1:111111111111:key/abcd123-acbd-1234-abcd-acbcd1234abcd
) а не псевдоним (arn:aws:kms:us-east-1:111111111111:alias/aws/*
)
Есть ли лучший способ справиться с этим?
Я знаю, что могу управлять доступом к CMK с помощью ключевых политик и не разрешать доступ из IAM, но вы не можете использовать группы как Principal
в ключевой политике KMS
2 ответа
Вы можете использовать псевдоним ключа в качестве ресурса для API, которые используются для управления доступом к API, которые действуют на сами псевдонимы (например, Создать / Удалить псевдоним), и псевдоним нельзя использовать в качестве ARN вместо идентификатора ключа для управления доступом к основные ключи. Вы можете обратиться к таблице в следующем URL-адресе, которая объясняет, какой ресурс /ARN использовать с API-интерфейсами KMS.
http://docs.aws.amazon.com/kms/latest/developerguide/kms-api-permissions-reference.html
Можно рассмотреть такой подход: разрешить группе IAM взять на себя роль IAM и разрешить роль IAM в ключевой политике CMK.
Источник: https://forums.aws.amazon.com/thread.jspa?threadID=173540
Хотя я знаю, что проблема решена, я испытываю желание опубликовать это из лучшего источника.
Псевдоним нельзя использовать в политике. См. Следующий отрывок с https://d1.awsstatic.com/whitepapers/aws-kms-best-practices.pdf
Следует отметить, что псевдонимы CMK нельзя использовать в политиках. Это связано с тем, что сопоставление псевдонимов ключам можно манипулировать вне политики, что позволило бы повысить привилегии. Поэтому идентификаторы ключей должны использоваться в политиках ключей KMS, политиках IAM и грантах KMS.