故障排除 Amazon Secrets Manager - Amazon Secrets Manager
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

故障排除 Amazon Secrets Manager

使用此处的信息可帮助您诊断和修复您在使用 Secrets Manager 时可能遇到的问题。

有关轮换的问题,请参阅 排除 Amazon Secrets Manager 轮换故障

“访问被拒绝” 消息

当你向 Secrets Manager 进行诸如 GetSecretValue 或 CreateSecret 之类的 API 调用时,你必须具有 IAM 权限才能进行该调用。当您使用控制台时,控制台会代表您进行相同的 API 调用,因此您还必须拥有 IAM 权限。管理员可以通过将 IAM 策略附加到您的 IAM 用户或您所属的群组来授予权限。如果授予这些权限的政策声明包含任何条件,例如 time-of-day 或 IP 地址限制,则您在发送请求时也必须满足这些要求。有关查看或修改适用于 IAM 用户、组或角色的策略的信息,请参阅《IAM 用户指南》中的使用策略。有关 Secrets Manager 所需权限的信息,请参阅 的身份验证和访问控制 Amazon Secrets Manager

如果您手动对 API 请求进行签名而不使用 Amazon SDK,请确认您已正确对请求进行签名

对于临时安全凭证的“拒绝访问”

请确认用于发出请求的 IAM 用户或角色具有正确的权限。临时安全凭证的权限来自于 IAM 用户或角色。这意味着,权限仅限于为 IAM 用户或角色授予的权限。有关临时安全凭证权限的确定方式的更多信息,请参阅 IAM 用户指南中的控制临时安全凭证的权限

确认已正确对请求进行签名,并且请求格式正确无误。有关详细信息,请参阅所选软件开发工具包的工具包文档,或者 IAM 用户指南中的使用临时安全证书请求 Amazon 资源访问权限

验证您的临时安全凭证没有过期。有关更多信息,请参阅《IAM 用户指南》中的请求临时安全凭证

有关 Secrets Manager 所需权限的信息,请参阅 的身份验证和访问控制 Amazon Secrets Manager

并非始终立即显示我所做的更改。

Secrets Manager 使用名为最终一致性的分布式计算模型。你在 Secrets Manager(或其他 Amazon 服务)中所做的任何更改都需要一段时间才能从所有可能的端点中看见。它在服务器与服务器之间、复制区域与复制区域之间,以及全球的区域与区域之间发送数据需要时间,这会造成一定的延迟。Secrets Manager 也使用缓存来提高性能,但在某些情况下,这可能会增加时间。在之前缓存的数据超时之前,更改可能不可见。

在设计全球应用程序时应考虑到这些可能的延迟。此外,确保应用程序可以按预期工作,即使在一个位置进行的更改不能立即在其他位置可见。

有关最终一致性如何影响其他一些 Amazon 服务的更多信息,请参阅:

在创建秘密时收到“Cannot generate a data key with an asymmetric KMS key”(无法使用非对称 KMS 密钥生成数据密钥)

Secrets Manager 使用与密钥关联的对称加密 KMS 密钥来为每个密钥值生成数据密钥。不能使用非对称 KMS 密钥。确认您使用的是对称加密 KMS 密钥,而不是非对称 KMS 密钥。有关说明,请参阅识别非对称 KMS 密钥

Amazon CLI 或 S Amazon DK 操作无法从部分 ARN 中找到我的秘密

在许多情况下,Secrets Manager 可以从不完整的 ARN 中找到密钥,而无需完整的 ARN。但如果密钥名称以连字符后跟六个字符结尾,Secrets Manager 可能无法仅从一部分 ARN 中找到密钥。我们建议您改用完整的 ARN 或密钥名称。

更多详细信息

Secrets Manager 会在密钥名称末尾添加六个随机字符,以帮助确保密钥 ARN 的唯一性。如果删除了原始密钥,然后使用相同的名称创建了新密钥,则由于这些字符的原因,这两个密钥具有不同的 ARN。由于 ARN 不同,有权访问旧密钥的用户不会自动获得新密钥的访问权限。

Secrets Manager 可为密钥构建 ARN,其中包含区域、账户、密钥名称,后跟连字符和六个字符,如下所示:

arn:aws:secretsmanager:us-east-2:111122223333:secret:SecretName-abcdef

如果密钥名称以连字符和六个字符结尾,当您仅使用一部分 ARN 时,在 Secrets Manager 看来您似乎指定了完整的 ARN。例如,您可能具有一个名为 MySecret-abcdef 的密钥,其 ARN 如下:

arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef-nutBrk

当您调用以下操作(此操作仅使用一部分密钥 ARN)时,Secrets Manager 可能会找不到密钥。

$ aws secretsmanager describe-secret --secret-id arn:aws:secretsmanager:us-east-2:111122223333:secret:MySecret-abcdef

此密钥由 Amazon 服务管理,您必须使用该服务对其进行更新。

如果您在尝试修改密钥时遇到此消息,则只能使用消息中列出的管理服务来更新密钥。有关更多信息,请参阅 Amazon Secrets Manager 由其他 Amazon 服务管理的机密

要确定谁管理密钥,您可以查看密钥名称。由其他服务管理的密钥以该服务的 ID 作为前缀。或者,在中 Amazon CLI,调用 d escribe-secret,然后查看该字段。OwningService