Amazon Neptune 支持的 IAM 条件上下文键 - Amazon Neptune
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

Amazon Neptune 支持的 IAM 条件上下文键

您可以在中指定条件Amazon Identity and Access Management(IAM) 策略控制对 Amazon Neptune 资源的访问。然后,策略语句仅在条件为 True 时生效。

例如,您可能希望策略语句仅在特定日期后生效,或者仅在 API 请求中存在特定值时允许访问。

要表示条件,您可以使用中的预定义的条件键Condition政策声明的元素以及IAM 条件策略运营商例如等于或小于。

如果您在一个语句中指定多个 Condition 元素,或在单个 Condition 元素中指定多个键,则 Amazon 使用逻辑 AND 运算评估它们。如果您为单个条件键指定多个值,则 Amazon 使用逻辑 OR 运算来评估条件。在授予语句的权限之前必须满足所有的条件。

在指定条件时,您也可以使用占位符变量。例如,只有在使用 IAM 用户名标记 IAM 用户时,您才能为其授予访问资源的权限。有关更多信息,请参阅 。IAM 策略元素:变量和标签中的IAM 用户指南.

条件键的数据类型确定您可以使用哪些条件运算符以将请求中的值与策略语句中的值进行比较。如果您使用的条件运算符与该数据类型不兼容,匹配始终会失败,而策略语句从不适用。

AmazonAmazon Neptune 支持的全局条件上下文键

Amazon定义了一组全局条件上下文键适用于所有Amazon使用 IAM 的服务。下表列出了AmazonAmazon Neptune 支持的全局条件密钥及其数据类型。

注意

这些全局条件键用于数据平面查询。Neptune 还支持特殊的基于标签的访问条件密钥这只用于基于标签的访问控制使用控制平面管理 API。

AmazonNeptune 支持的全局条件键
条件键 描述 类型
aws:CurrentTime 按请求的当前日期和时间筛选访问权限。 String
aws:EpochTime 按以 UNIX 纪元值表示的请求的日期和时间过滤访问权限。 Numeric
aws:PrincipalAccount 按请求委托人所属的账户筛选访问。 String
aws:PrincipalArn 根据发出请求的委托人的 ARN 筛选访问。 String
aws:PrincipalIsAWSService 仅当调用是由直接发出的时候允许访问。Amazon服务委托人。 Boolean
aws:PrincipalOrgID 按中组织的标识符筛选访问Amazon请求委托人所属的 Organizations。 String
aws:PrincipalOrgPaths 筛选访问权限Amazon发出请求的委托人的 Organizations 路径。 String
aws:PrincipalTag 按附加到发出请求的委托人的标签筛选访问权限。 String
aws:PrincipalType 按发出请求的主体类型筛选访问权限。 String
aws:RequestedRegion 筛选访问权限Amazon请求中调用的区域。 String
aws:SecureTransport 仅当请求是使用 SSL 发送的情况下才允许访问。 Boolean
aws:SourceIp 按请求者的 IP 地址筛选访问权限。 String
aws:TokenIssueTime 按颁发临时安全凭证时的日期和时间筛选访问。 String
aws:UserAgent 按请求者的客户端应用程序筛选访问。 String
aws:userid 按请求者的主体标识符筛选访问。 String
aws:ViaAWSService 只有在Amazon服务代表你提出了请求。 Boolean

展示如何使用 IAM 条件密钥的示例

将 IP 地址条件与结合使用的示例aws:SourceIp条件键

假设您附加了以下策略,该策略如下所示。Amazon:拒绝访问Amazon基于源 IP,发给 IAM 用户,然后设置aws:SourceIp您的公司 IP 地址范围的条件键。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "neptune-db:*", "Resource": "*" }, { "Effect": "Deny", "Action": "neptune-db:*", "Resource": "*", "Condition": { "NotIpAddress": { "aws:SourceIp": [ "192.0.2.0/24", "203.0.113.0/24" ] } } } ] }

然后,如果您尝试从具有不同 IP 地址的家庭网络查询数据库,即使您有权进行查询,查询也会失败并显示授权错误,因为请求的 IP 地址不在策略文档中指定的 IP 地址范围内。

注意

这些区域有:aws:sourceIp当请求来自时,条件键不起作用Amazon VPC 终端节点.

使用的示例aws:SecureTransport条件键,用于限制对通过 HTTPS 发送的请求的访问

如果您想仅允许访问通过安全 SSL 连接发送的请求,请将以下策略附加到 IAM 用户或角色:

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Action": "neptune-db:*", "Resource": "*", "Condition": { "Bool": { "aws:SecureTransport": "true" } } } }

有关示例如何在 Neptune 中使用 IAM 条件密钥进行基于标签的访问控制,请参阅基于标签的访问.