Политика 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.

Другие вопросы по тегам