本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
SASL/SCRAM、mTLS、SASL/OAUTHBEARER 和客戶受管金鑰的其他 SER 許可
AWSMSKReplicatorExecutionRole 受管政策涵蓋 IAM 驗證的叢集、主題和取用者群組許可。當您複寫至使用 SASL/SCRAM、mTLS 或 SASL/OAUTHBEARER (OAuth) 身分驗證的叢集或從中複寫時 (例如,從自我管理的 Apache Kafka 叢集遷移時),或當您的秘密使用客戶受管金鑰 (CMK) 加密時,您需要將額外的內嵌許可連接到服務執行角色。
除了 受管政策之外,請使用下列程式碼片段。選擇符合您設定的案例。
SASL/SCRAM 秘密 (有或沒有 TLS 根 CA 秘密)
授予 SER 讀取 SCRAM 憑證和 (選擇性) 私有 CA 憑證的許可 AWS 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 讀取用戶端憑證和私有金鑰的許可 AWS 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和 之秘密的 AWS Secrets Manager 讀取存取權client_secret。IAM JWT 承載和用戶端憑證聲明 — 授予 ,
sts:GetWebIdentityToken以便 SER 可以為其自己的 AWS 身分取得已簽署的 JWT。如果您提供選用的秘密,也請授予 AWS Secrets Manager 讀取存取權。
如果您的 IDP 使用私有 CA, 也會授予秘密的 AWS Secrets Manager 讀取存取權,該秘密會保存您在 中參考的 CA 憑證tokenEndpointTlsCertificateArn。下列範例會同時授予兩者。將 取代<oauthSecretArn>為您的秘密 ARN、<idpCaCertSecretArn>將 CA 憑證秘密 ARN <accountID>取代為您的 AWS 帳戶 ID。SecretsManagerPermissions 如果您在沒有秘密的情況下使用 IAM JWT 承載或用戶端憑證聲明機制,且 IDP 使用公開信任的憑證,請完全省略陳述式;如果您使用用戶端憑證機制,請省略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 而非 AWS受管金鑰加密,也請在 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_*作為資源模式,而不是個別秘密 ARNs。