本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
安全性和权限
托管外部机密不需要您与之共享第三方应用程序帐户的管理员级权限。AWS相反,轮换过程使用您提供的凭证和元数据对第三方应用程序进行授权的 API 调用,以进行凭据更新和验证。
托管的外部密钥与其他 Secrets Manager 密钥类型保持相同的安全标准。密钥值使用您的 KMS 密钥进行静态加密,在传输过程中使用 TLS 进行加密。对机密的访问通过 IAM 策略和基于资源的策略进行控制。使用客户托管密钥加密您的密钥时,您需要更新轮换角色的 IAM 策略和 CMK 信任策略,以提供所需的权限以确保成功轮换。
为了使轮换正常运行,您必须向 Secrets Manager 提供管理密钥生命周期的特定权限。这些权限可以限定为个人秘密,并遵循最低权限原则。您提供的轮换角色在设置过程中经过验证,并且仅用于旋转操作。
您可以通过仅在您的密钥存在的区域中允许 Secrets Manager 托管外部AWS密钥管理的前缀列表来限制 IP 入口到您的外部资源。前缀列表已命名com.amazonaws.,其中region.secretsmanager-managed-external-secretsregion是您的密钥所在AWS区域。使用托管前缀列表可确保您的入口规则在底层 IP 范围发生变化时自动保持最新状态。
如果您更喜欢以编程方式引用前缀列表,则可以使用 GetManagedPrefixListEntriesAPI 列出需要列入许可名单的 IP。您应使用此前缀列表定期刷新您的入口规则,以使其保持最新状态。
AWS Secrets Manager还提供了在通过 Secrets Manager 控制台创建密钥时创建具有管理密钥所需的权限的 IAM 策略的单点触控解决方案。该角色的权限限定为每个区域的每个集成合作伙伴。
权限策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowRotationAccess", "Action": [ "secretsmanager:DescribeSecret", "secretsmanager:GetSecretValue", "secretsmanager:PutSecretValue", "secretsmanager:UpdateSecretVersionStage" ], "Resource": "*", "Effect": "Allow", "Condition": { "StringEquals": { "secretsmanager:resource/Type": "SalesforceClientSecret" } } }, { "Sid": "AllowPasswordGenerationAccess", "Action": [ "secretsmanager:GetRandomPassword" ], "Resource": "*", "Effect": "Allow" } ] }
注意:secretsmanager: 可用的密钥类型列表resource/Type 可在集成合作伙伴中找到。
信任策略示例:
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SecretsManagerPrincipalAccess", "Effect": "Allow", "Principal": { "Service": "secretsmanager.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnLike": { "aws:SourceArn": "arn:aws:secretsmanager:us-east-1:111122223333:secret:*" } } } ] }