AWS SecretsManager 按标签过滤?

Max*_*lan 6 amazon-web-services aws-secrets-manager

我从 boto3 开始,但意识到这也适用于 CLI。

我读到了一些问题,建议我可以像这样设置过滤器来获取带有 Production 或 Staging 名称的秘密:

res = sm.list_secrets(Filters=[
    { 'Key': 'tag-key', 'Values': ['Name'] },
    { 'Key': 'tag-value', 'Values': ['Production', 'Staging'] },
])
Run Code Online (Sandbox Code Playgroud)

但这似乎是在寻找任何带有 Name 键的东西和任何带有 Prod/Staging 值的东西(在不同的标签中),而不是 Name=Prod/Staging。

如果我在秘密上创建 2 个标记:值:项目:栏和名称:foo。然后尝试过滤项目:foo - 我得到了这个秘密。

sec.list_secrets(Filters= [{ 'Key':'tag-key','Values':['project']},{ 'Key':'tag-value','Values':['foo']}])["SecretList"][0]["Tags"]
[{'Key': 'project', 'Value': 'bar'}, {'Key': 'Name', 'Value': 'foo'}]
Run Code Online (Sandbox Code Playgroud)

或者,如果我添加“something:max”并过滤 Name 和 max :

sec.list_secrets(Filters= [{ 'Key':'tag-key','Values':['Name']},{ 'Key':'tag-value','Values':['max']}])["SecretList"][0]["Tags"]
[{'Key': 'project', 'Value': 'bar'}, {'Key': 'something', 'Value': 'max'}, {'Key': 'Name', 'Value': 'foo'}]
Run Code Online (Sandbox Code Playgroud)

如果我创建第二个秘密以使其更加明显,CLI 上也会发生同样的情况。两者都有一个项目键和一个值 max :

aws secretsmanager list-secrets --filters Key=tag-key,Values=project Key=tag-value,Values=max --query SecretList[].Tags --output text
project max
something       else
project bar
something       max
Name    foo
Run Code Online (Sandbox Code Playgroud)

所以,我的问题是,除了使用列表后循环来检查实际的键:值对之外,我可以使过滤器仅显示 tag=Value 的结果吗?

ec2 上常见的描述标签不适用于 Secrets,并且 tag:tagname=value 在过滤器中不起作用...