本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在 Amazon 中管理访问权限概述 SQS
每个 Amazon 资源归某人所有 Amazon Web Services 账户,创建或访问资源的权限受权限策略的约束。账户管理员可以将权限策略附加到IAM身份(用户、群组和角色),某些服务(例如 AmazonSQS)也支持将权限策略附加到资源。
注意
账户管理员(或管理员用户)是具有管理权限的用户。有关更多信息,请参阅《IAM用户指南》中的IAM最佳实践。
在授予权限时,由您指定哪些用户获得权限,获得对哪些资源的权限,以及您允许对这些资源执行哪些具体操作。
Amazon Simple Queue Service 资源和操作
在 Amazon 中SQS,唯一的资源是队列。在策略中,使用 Amazon 资源名称 (ARN) 来标识该政策适用的资源。以下资源具有与之ARN关联的唯一资源:
资源类型 | ARN格式 |
---|---|
队列 | arn:aws:sqs: |
以下是队列ARN格式的示例:
-
代表ARN在美国东部(俄亥俄州)地区命名的
my_queue
队列,属于 Amazon 账户 123456789012:arn:aws:sqs:us-east-2:123456789012:my_queue
-
ARN对于
my_queue
在 Amazon SQS 支持的每个不同区域中命名的队列:arn:aws:sqs:*:123456789012:my_queue
-
使用
*
或?
作为队列名称通配符的。ARN在以下示例中,ARN匹配所有前缀为:的my_prefix_
队列arn:aws:sqs:*:123456789012:my_prefix_*
您可以通过调用GetQueueAttributes
操作来获取现有队列的ARN值。该QueueArn
属性的值是队ARN列的。有关的更多信息ARNs,请参阅《IAM用户指南》IAMARNs中的。
Amazon SQS 提供了一组与队列资源配合使用的操作。有关更多信息,请参阅 Amazon SQS API 权限:操作和资源参考。
了解资源所有权
这些区域有: Amazon Web Services 账户 拥有在账户中创建的资源,无论谁创建了这些资源。具体而言,资源所有者是 Amazon Web Services 账户 对资源创建请求进行身份验证的委托人实体(即 root 账户、用户或IAM角色)。以下示例说明了它的工作原理:
-
如果您使用您的 root 账户证书 Amazon Web Services 账户 要创建 Amazon SQS 队列,您的 Amazon Web Services 账户 是资源的所有者(在亚马逊中SQS,资源是亚马逊队SQS列)。
-
如果你在你的 Amazon Web Services 账户 并向用户授予创建队列的权限,则用户可以创建队列。但是,你的 Amazon Web Services 账户 (用户所属的)拥有队列资源。
-
如果你在你的IAM角色中创建了一个角色 Amazon Web Services 账户 只要拥有创建 Amazon SQS 队列的权限,任何能够担任该角色的人都可以创建队列。您的 Amazon Web Services 账户 (角色所属的)拥有队列资源。
管理对 资源的访问
权限策略描述了授予给账户的权限。下一节介绍创建权限策略时的可用选项。
注意
本节讨论如何IAM在 Amazon 环境中使用SQS。它不提供有关IAM服务的详细信息。有关完整IAM文档,请参阅什么是IAM? 在《IAM用户指南》中。有关IAM策略语法和描述的信息,请参见 Amazon IAM《IAM用户指南》中的政策参考。
附加到IAM身份的策略称为基于身份的策略(IAM策略),附加到资源的策略称为基于资源的策略。
基于身份的策略
向您的用户授予访问您的 Amazon SQS 队列权限的方法有两种:使用亚马逊SQS策略系统和使用IAM策略系统。您可以使用任一系统或这两种系统来将策略附加到用户或角色。在大多数情况下,使用任一系统都能获得相同的结果。例如,您可以执行以下操作:
-
将@@ 权限策略附加到您账户中的用户或群组-要向用户授予创建 Amazon SQS 队列的权限,请将权限策略附加到该用户所属的用户或群组。
-
将权限策略附加到其他用户中 Amazon Web Services 账户— 要向用户授予创建亚马逊SQS队列的权限,请将亚马逊SQS权限策略附加到其他队列中的用户 Amazon Web Services 账户.
跨账户权限不能应用于以下操作:
-
向角色附加权限策略(授予跨账户权限)-要授予跨账户权限,请将基于身份的权限策略附加到角色。IAM例如, Amazon Web Services 账户 管理员可以创建一个角色来授予跨账户权限 Amazon Web Services 账户 B(或者 Amazon 服务)如下:
-
账户 A 管理员创建一个IAM角色并向该角色附加权限策略(该策略授予账户 A 中资源的权限)。
-
账户 A 管理员向将账户 B 标识为能够代入该角色的主体的角色附加信任策略。
-
账户 B 管理员向账户 B 中的任何用户委派代入该角色的权限。这将允许账户 B 中的用户创建或访问账户 A 中的队列。
注意
如果你想向某人授予担任该角色的权限 Amazon 服务,信任策略中的委托人也可以是 Amazon 服务负责人。
-
有关使用委派权限IAM的更多信息,请参阅《IAM用户指南》中的访问管理。
虽然 Amazon SQS 使用IAM策略,但它有自己的策略基础架构。您可以使用带有队列的 Amazon SQS 策略来指定哪个 Amazon 账户有权访问队列。您可以指定访问类型和条件(例如,条件是如果请求早于 2010 年 12 月 31 日,即授予使用 SendMessage
和 ReceiveMessage
的权限)。您可以授予权限的具体操作是 Amazon SQS 操作总列表的子集。当您编写亚马逊SQS政策并指定 “*
允许所有亚马逊SQS操作” 时,这意味着用户可以执行此子集中的所有操作。
下图说明了其中一项基本的Amazon SQS 政策的概念,该政策涵盖了操作的子集。该政策是为了queue_xyz
,它给出了 Amazon 账户 1 和 Amazon 账户 2 有权对指定队列使用任何允许的操作。
注意
策略中的资源指定为123456789012/queue_xyz
,其中 123456789012
Amazon 拥有队列的账户的账户 ID。
随着用户IAM和 Amazon 资源名称 (ARNs) 的引入和概念,SQS政策的一些方面发生了变化。以下示意图和表格描述了这些变化。
有关向不同账户中的用户授予权限的信息,请参阅教程:跨账户委派访问权限 Amazon 《IAM用户指南》中的 “使用IAM角色的帐户”。
*
中包含的操作子集已扩展。有关允许的操作的列表,请参阅Amazon SQS API 权限:操作和资源参考。
您可以使用 Amazon 资源名称 (ARN) 来指定资源,这是在IAM策略中指定资源的标准方法。有关 Amazon SQS 队列ARN格式的信息,请参阅Amazon Simple Queue Service 资源和操作。
例如,根据上图中的 Amazon SQS 政策,任何拥有以下安全证书的人 Amazon 账户 1 或 Amazon 账户 2 可以访问queue_xyz
。此外,用户 Bob 和 Susan 是你自己的 Amazon 账户(带有 ID123456789012
)可以访问队列。
在引入之前IAM,Amazon SQS 会自动让队列的创建者完全控制队列(也就是说,可以访问该队列上所有可能的亚马逊SQS操作)。除非创作者使用,否则这已不再是事实 Amazon 安全证书。任何有权创建队列的用户还必须拥有使用其他 Amazon SQS 操作的权限,才能对创建的队列执行任何操作。
以下示例策略允许用户使用所有 Amazon SQS 操作,但仅限于名称以文字字符串为前缀的队列。bob_queue_
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:123456789012:bob_queue_*" }] }
有关更多信息在 Amazon 上使用政策 SQS,请参阅用户指南中的和身份(用户、组和角色)。IAM
指定策略元素:操作、效果、资源和主体
对于每种 Amazon Simple Queue Service 资源,该服务都定义一组操作。为了授予这些操作的权限,Amazon SQS 定义了一组您可以在策略中指定的操作。
注意
执行一个 操作可能需要多个操作的权限。在授予特定操作的权限时,您也可以标识允许或拒绝对其执行操作的资源。
以下是最基本的策略元素:
-
资源-在策略中,您可以使用 Amazon 资源名称 (ARN) 来标识该政策适用的资源。
-
操作 - 您可以使用操作关键字标识要允许或拒绝的资源操作。例如,
sqs:CreateQueue
权限允许用户执行 Amazon Simple Queue ServiceCreateQueue
操作。 -
效果:您可以指定当用户请求特定操作(可以是允许或拒绝)时的效果。如果您没有显式授予对资源的访问权限,则隐式拒绝访问。您也可明确拒绝对资源的访问,这样可确保用户无法访问该资源,即使有其他策略授予了访问权限的情况下也是如此。
-
委托人 — 在基于身份的策略(IAM策略)中,策略所关联的用户是隐式委托人。对于基于资源的策略,您可以指定要接收权限的用户、帐户、服务或其他实体(仅适用于基于资源的策略)。
要了解有关 Amazon SQS 政策语法和描述的更多信息,请参阅 Amazon IAM《IAM用户指南》中的政策参考。
有关所有 Amazon Simple Queue Service 操作及其适用资源的表格,请参阅 Amazon SQS API 权限:操作和资源参考。