【问题标题】:Limiting permissions for aws sqs:ListQueues限制 aws sqs:ListQueues 的权限
【发布时间】:2021-10-09 17:32:06
【问题描述】:

在使用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*"}}
}

让我拒绝访问。

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

【问题讨论】:

  • This 是您应该查看的正确文档。注意ListQueues 操作,没有可用的条件键,这意味着"*" 是唯一可以工作的。
  • @jellycsc 我认为我们的两个链接都说同样的话。我的问题是是否有任何方法可以在安全方面解决这个问题。

标签: amazon-web-services aws-lambda boto3 amazon-iam amazon-sqs


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 2020-12-26
    • 2021-04-14
    • 2018-12-06
    • 1970-01-01
    • 2022-08-18
    • 1970-01-01
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    相关资源
    最近更新 更多