限制 aws sqs:ListQueues 的权限

Limiting permissions for aws sqs:ListQueues

在使用 boto3 列出 sqs 队列时,是否可以将权限限制为函数可以拉取的队列数量?

我目前正在使用 boto3 根据前缀提取队列列表:

sqs = boto3.client('sqs')
response = sqs.list_queues(
   QueueNamePrefix = 'some-prefix'
)

我只能根据以下政策完成这项工作:

{
   "Action": "sqs:ListQueues",
   "Effect": "Allow",
   "Resource": "*"
}

像这样编辑它来限制资源:

{
   "Action": "sqs:ListQueues",
   "Effect": "Allow",
   "Resource": "some-prefix*"
}

或使用条件:

{
   "Action": "sqs:ListQueues",
   "Effect": "Allow",
   "Resource": "*",
   "Condition": {"StringLike":{"aws:SourceArn": "some-prefix*"}}
}

给我一个 AccesDenied。

API policy documentation for sqs 中,ListQueues 权限资源表示为 arn:aws:sqs:region:account_id:*。我想知道是否有任何方法可以限制权限,以便我的 python 函数无法访问列出 sqs 中的所有队列。

查看 Actions, resources, and condition keys for Amazon SQS - Service Authorization ReferenceListQueues API 调用不接受任何 Condition 选项。

但是,它确实接受 QueueNamePrefix“用于过滤列表结果的字符串。仅返回名称以指定字符串开头的那些队列。”

因此,您可以通过在该字段中指定前缀来限制队列,而不是使用条件。