如何在 AWS Secrets Manager 中列出已删除的密钥?

Max*_*lan 5 amazon-web-services aws-cli boto3 aws-secrets-manager

查看 的手册页list-secrets,没有显示删除或不删除的特殊选项。它不列出已删除的机密。但是,输出定义包含“DeletedDate”时间戳。

ListSecrets API不显示已删除机密的任何选项。但响应再次包含删除日期。

boto3 的文档list_secrets()是相同的。

但是,在AWS控制台中我可以看到已删除的秘密。快速浏览一下开发工具,我可以看到我对 Secrets Manager 端点的请求负载如下所示:

{
  "method": "POST",
  "path": "/",
  "headers": {
    "Content-Type": "application/x-amz-json-1.1",
    "X-Amz-Target": "secretsmanager.ListSecrets",
    "X-Amz-Date": "Fri, 27 Nov 2020 13:19:06 GMT"
  },
  "operation": "ListSecrets",
  "content": {
    "MaxResults": 100,
    "IncludeDeleted": true,
    "SortOrder": "asc"
  },
  "region": "eu-west-2"
}
Run Code Online (Sandbox Code Playgroud)

有什么办法可以传递"IncludeDeleted": true到 CLI 吗?

这是一个错误吗?我该去哪里举报?(我知道 github 上有一个 cloudformation bug 跟踪器,我想 Secretsmanager 会有类似的东西..?)

ale*_*han 6

将以下文件保存到~/.aws/models/secretsmanager/2017-10-17/service-2.sdk-extras.json

\n
{\n  "version": 1.0,\n  "merge": {\n    "shapes": {\n      "ListSecretsRequest": {\n        "members": {\n          "IncludeDeleted": {\n            "shape": "BooleanType",\n            "documentation": "<p>If set, includes secrets that are disabled.</p>"\n          }\n        }\n      }\n    }\n  }\n}\n
Run Code Online (Sandbox Code Playgroud)\n

然后您可以使用 CLI 列出机密,如下所示:

\n
aws secretsmanager list-secrets --include-deleted\n
Run Code Online (Sandbox Code Playgroud)\n

或使用 boto3:

\n
aws secretsmanager list-secrets --include-deleted\n
Run Code Online (Sandbox Code Playgroud)\n

这是使用botocore 加载机制来增强 Secrets Manager 的服务模型,并告诉 boto3“IncludeDeleted”是 ListSecrets API 的参数。

\n

如果您想了解更多详细信息,我刚刚发布了一篇博客文章解释了我还尝试过什么以及如何找到这个解决方案 \xe2\x80\x93 ,并感谢 OP,他的开发工具实验是一个有用的线索。

\n