限制 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 Reference,ListQueues
API 调用不接受任何 Condition
选项。
但是,它确实接受 QueueNamePrefix
:“用于过滤列表结果的字符串。仅返回名称以指定字符串开头的那些队列。”
因此,您可以通过在该字段中指定前缀来限制队列,而不是使用条件。
在使用 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 Reference,ListQueues
API 调用不接受任何 Condition
选项。
但是,它确实接受 QueueNamePrefix
:“用于过滤列表结果的字符串。仅返回名称以指定字符串开头的那些队列。”
因此,您可以通过在该字段中指定前缀来限制队列,而不是使用条件。