MSK SCRAM KMS Key 最小权限策略

0

【以下的问题经过翻译处理】 我们正在使用注册 Secrets Manager Secrets 进行身份验证的 MSK SCRAM。这确实需要一个单独的对称 KMS key与密钥一起使用。这些密钥需要具有“AmazonMSK_ *”的形式。我们的安全性要求通过关联的 KMS 密钥策略将对该 KMS 密钥的访问权限降至最低权限。

看起来推荐使用Condition变量。链接:https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-services.html

我试图以这种方式使用:

Effect: Allow
Action: 
- kms:CreateGrant
- kms:Encrypt
Resource: "*"
Principal: "*"
Condition: 
     StringLike:
         kms:EncryptionContext:aws:secretsmanager:arn: 
          - "arn.aws.secretsmanager:us-west-2:*:secret:AmazonMSK_*" 

但我得到的是:“Access to KMS is not allowed”。

例如:

 Condition: 
     StringEquals:
         kms:ViaService: "secretsmanager.us-west-2.amazonaws.com"

虽然可以工作,但不够具体。是否有人知道可以用于 secretsmanager 条件的 EncryptionContext 是什么?

1 Antwort
0

【以下的回答经过翻译处理】 我认为上述密钥策略中的主要问题是您指定的密钥上下文。 AWS Secrets Manager用于指定特定机密的密钥上下文为kms:EncryptionContext:SecretARN,如此处所述-> https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-encryption-context。更新密钥策略时要非常谨慎,以确保它们不会变得难以管理-> https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-default.html。除了您自定义的密钥用户策略外,确保具有密钥管理声明。 Amazon MSK的策略声明应该看起来像这样:

{
    "Sid": "AllowUseOfTheKeyForSecretsManager",
    "Effect": "Allow",
    "Principal": {
        "AWS": "arn:aws:iam::<YourAccount>:role/<MSKRoleName>"
    },
    "Action": [
        "kms:Encrypt",
        "kms:Decrypt",
        "kms:ReEncrypt*",
        "kms:GenerateDataKey*",
        "kms:DescribeKey"
    ],
    "Resource": "*",
    "Condition": {
        "StringLike": {
            "kms:EncryptionContext:SecretARN": "arn:aws:secretsmanager:<YourRegion>:<YourAccount>:secret:AmazonMSK_*"
        }
    }
}
profile picture
EXPERTE
beantwortet vor 6 Monaten

Du bist nicht angemeldet. Anmelden um eine Antwort zu veröffentlichen.

Eine gute Antwort beantwortet die Frage klar, gibt konstruktives Feedback und fördert die berufliche Weiterentwicklung des Fragenstellers.

Richtlinien für die Beantwortung von Fragen