gpt4 book ai didi

amazon-web-services - 如何在 AWS Secrets Manager 中列出已删除的 key ?

转载 作者:行者123 更新时间:2023-12-05 02:47:21 25 4
gpt4 key购买 nike

查看 man page for list-secrets , 没有显示删除与否的特殊选项。它不会列出已删除的 secret 。但是,输出定义包含“DeletedDate”时间戳。

ListSecrets API不显示已删除 secret 的任何选项。但响应再次包含一个 DeletedDate。

boto3 docs for 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"
}

有什么方法可以将 "IncludeDeleted": true 传递给 CLI?

这是一个错误吗?我在哪里报告? (我知道 github 上有一个 cloudformation bug tracker,我想 secretsmanager 会有类似的东西......?)

最佳答案

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

{
"version": 1.0,
"merge": {
"shapes": {
"ListSecretsRequest": {
"members": {
"IncludeDeleted": {
"shape": "BooleanType",
"documentation": "<p>If set, includes secrets that are disabled.</p>"
}
}
}
}
}
}

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

aws secretsmanager list-secrets --include-deleted

或使用 boto3:

import boto3


def list_secrets(session, **kwargs):
client = session.client("secretsmanager")

for page in client.get_paginator("list_secrets").paginate(, **kwargs):
yield from page["SecretList"]


if __name__ == "__main__":
session = boto3.Session()

for secret in list_secrets(session, IncludeDeleted=True):
if "DeletedDate" in secret:
print(secret)

这是使用 botocore loader mechanism扩充 Secrets Manager 的服务模型,并告诉 boto3 “IncludeDeleted”是 ListSecrets API 的参数。

如果您想了解更多详细信息,我刚刚发布了 a blog post解释我还尝试了什么以及我是如何得到这个解决方案的——感谢 OP,他的开发工具实验是一个有用的线索。

关于amazon-web-services - 如何在 AWS Secrets Manager 中列出已删除的 key ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65038240/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com