本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
mTL 和客户管理密钥的其他 SER 权限 SASL/SCRAM SASL/OAUTHBEARER
AWSMSKReplicatorExecutionRole托管策略涵盖了 IAM 身份验证的集群、主题和消费者组权限。当您向使用 SASL/SCRAM mTLS 或 SASL/OAUTHBEARER (OAuth) 身份验证的集群进行复制时(例如,从自管理的 Apache Kafka 集群迁移时),或者当您的密钥使用客户管理密钥 (CMK) 加密时,您需要为服务执行角色附加额外的内联权限。
除了托管策略外,还可使用以下代码片段。选择与您的设置相匹配的场景。
SASL/SCRAM 密钥(有或没有 TLS 根 CA 密钥)
授予 SER 从中读取 SCRAM 凭据和(可选)私有 CA 证书的 Amazon Secrets Manager权限。<saslSecretArn>替换为您的 SCRAM 密钥 ARN 和<privateCaCertSecretArn>保存 CA 证书的密钥(如果您使用公共信任证书,请省略第二个 ARN)。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<saslSecretArn>", "<privateCaCertSecretArn>" ] } ] }
mTLS 密钥(有或没有 TLS 根 CA 密钥)
授予 SER 从中读取客户端证书和私钥的权限 Amazon Secrets Manager。<mtlsSecretArn>替换为 mTLS 密钥的 ARN 和<privateCaCertSecretArn>保存服务器 CA 证书的密钥(如果您使用公共信任证书,请省略第二个 ARN)。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<mtlsSecretArn>", "<privateCaCertSecretArn>" ] } ] }
SASL/OAUTHBEARER
SER 所需的权限 SASL/OAUTHBEARER 取决于机制:
客户证书 — 授予对持有
client_id和的机密的 Amazon Secrets Manager 读取权限client_secret。IAM JWT 持有人和客户凭证断言 — 授权,
sts:GetWebIdentityToken这样 SER 就可以为自己的身份获取签名的 JWT。 Amazon 如果您提供可选密钥,还应授予 Amazon Secrets Manager 读取权限。
如果您的 IDP 使用私有 CA,还要授予对保存您引用的 CA 证书的机密的 Amazon Secrets Manager 读取权限。tokenEndpointTlsCertificateArn以下示例同时授予两者。<oauthSecretArn>替换为您的密钥 ARN、<idpCaCertSecretArn> CA 证书密钥 ARN 和您<accountID> Amazon Web Services 账户 的 ID。如果您使用不带密钥的 IAM JWT 持有者或客户端凭证断言机制,并且您的 IDP 使用公共信任证书,则完全省略该SecretsManagerPermissions声明;如果您使用客户端证书机制,则省略该StsPermissions声明。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<oauthSecretArn>", "<idpCaCertSecretArn>" ] }, { "Sid": "StsPermissions", "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "arn:aws:sts::<accountID>:self" } ] }
使用客户管理的密钥加密的秘密
如果密钥是使用 CMK 而不是 Amazon-managed 密钥加密的,则还要对 CMK kms:Decrypt 进行授权。替换<customerManagedKeyArn>为 CMK ARN。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPermissions", "Effect": "Allow", "Action": [ "secretsmanager:GetResourcePolicy", "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret", "secretsmanager:ListSecretVersionIds" ], "Resource": [ "<secretArn>", "<privateCaCertSecretArn>" ] }, { "Sid": "KmsPermissions", "Effect": "Allow", "Action": "kms:Decrypt", "Resource": [ "<customerManagedKeyArn>" ] } ] }
注意
如果您更喜欢与 MSK Connect 配置提供商权限一致的更大范围,则可以arn:aws:secretsmanager:<region>:<accountID>:secret:AmazonMSK_*将其用作资源模式,而不是单个机密 ARN。