View a markdown version of this page

AWS Sign-In 条件键参考 - AWS Sign-In

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

AWS Sign-In 条件键参考

本页列出了可在 AWS Sign-In 基于资源的策略和资源控制策略 (RCP) 中使用的条件密钥,并显示每个密钥适用的评估阶段和操作。只有特定signin:PrincipalArn于 AWS Sign-In;其他是 AWS 全局条件键。有关全局键的定义,请参阅AWS 全局条件上下文键

有关《服务授权参考》中操作和条件键的完整列表,请参阅的操作、资源和条件键 AWS Sign-In

Network-based 条件键

这些条件键检查请求的来源。 AWS Sign-In 对基于资源的策略和 RCP 中的所有 AWS Sign-In 操作(signin:Authenticatesignin:AuthorizeOAuth2Access、和signin:CreateOAuth2Token)进行评估。

Network-based 条件键
条件键 运算符 说明 使用规则
aws:SourceIp IpAddress, NotIpAddress 公有 IP 地址或 CIDR 范围 当请求使用 VPC 终端节点时不存在。在同一语句中组合 VPC-based条件时使用IfExists运算符。
aws:SourceVpc StringEquals, StringNotEquals VPC ID (vpc-xxxxxxxx) 仅当请求使用 VPC 终端节点时才会出现。与一起使用aws:RequestedRegion可防止跨区域 VPC ID 冲突。
aws:SourceVpce StringEquals, StringNotEquals VPC 终端节点 ID (vpce-xxxxxxxx) 仅当请求使用 VPC 终端节点时才会出现。
aws:VpcSourceIp IpAddress, NotIpAddress VPC 内的私有 IP 请务必将aws:VpcSourceIp条件键与aws:SourceVpcaws:SourceVpce条件键一起使用。
aws:RequestedRegion StringEquals, StringNotEquals 目标 AWS 区域代码 建议在使用时使用aws:SourceVpc,以防止跨区域 VPC ID 冲突。可以指定多个区域。
重要

单个请求包含aws:SourceIp(公共网络)或aws:SourceVpc(VPC 终端节点),而不是两者兼而有之。在编写涵盖两条路径的 deny-unsels 策略时,请使用IfExists运算符(例如NotIpAddressIfExists)或创建单独的语句。

Identity-based 条件键

这些条件键用于检查谁在发出请求。它们仅适用于已确定主体身份的身份验证后操作(signin:AuthorizeOAuth2Accesssignin:CreateOAuth2Token)。

Identity-based 条件键
条件键 运算符 说明 示例
aws:PrincipalArn ArnEquals, ArnLike, ArnNotEquals, StringEquals, StringLike 经过身份验证的 IAM 委托人的 ARN arn:aws:iam::123456789012:user/alice, arn:aws:iam::123456789012:role/Admin
aws:PrincipalAccount StringEquals, StringNotEquals AWS 委托人的账户 ID 123456789012

Service-specific 条件键:登录:PrincipalArn

以下条件密钥特定于全局密钥 AWS Sign-In ,不是全局 AWS 密钥。它仅在身份验证前评估期间可用。signin:PrincipalArn用于在身份验证完成之前识别发起登录的委托人。这相当于的预身份验证aws:PrincipalArn,只有在身份验证之后才可用。

运算符

ARN 运算符(ArnEquals、、ArnLikeArnNotEqualsArnNotLike)和字符串运算符(StringEqualsStringLike)。

可用性

AWS Sign-In 在预身份验证阶段(signin:Authenticate操作)将此密钥包含在请求上下文中。它不适用于身份验证后的操作(signin:AuthorizeOAuth2Accesssignin:CreateOAuth2Token)。

数据类型

ARN。使用 ARN 运算符而不是字符串运算符。

值类型

Single-valued.

在以下版本中受支持:

Resource-based 政策和 RCP。

使用 ARN 运算符比较值。您可以指定以下主体类型:

  • AWS 账户 root 用户 (arn:aws:iam::123456789012:root)

  • IAM 用户 (arn:aws:iam::123456789012:user/user-name)

  • IAM 角色 (arn:aws:iam::123456789012:role/role-name)

用例:将排除的主体身份排除在网络限制之外,防止锁定,同时仍对所有其他访问尝试实施网络控制。

示例-拒绝未经授权的网络进行预身份验证访问,root 用户除外:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": ["signin:Authenticate"], "Resource": "*", "Condition": { "ArnNotEquals": { "signin:PrincipalArn": "arn:aws:iam::123456789012:root" }, "NotIpAddress": { "aws:SourceIp": "203.0.113.0/24" }, "StringEquals": { "aws:ResourceAccount": "123456789012" } } }, { "Effect": "Deny", "Principal": { "AWS": "*" }, "Action": ["signin:CreateOAuth2Token", "signin:AuthorizeOAuth2Access"], "Resource": "*", "Condition": { "ArnNotEquals": { "aws:PrincipalArn": "arn:aws:iam::123456789012:root" }, "NotIpAddress": { "aws:SourceIp": "203.0.113.0/24" }, "StringEquals": { "aws:ResourceAccount": "123456789012" } } } ] }

此策略拒绝从 IP 范围以外203.0.113.0/24的 IP 范围访问控制台,但账户 root 用户除外。身份验证前语句用于signin:PrincipalArn在身份验证完成之前豁免 root 用户。在 OAuth 令牌交换期间aws:PrincipalArn,身份验证后语句用于在身份验证后豁免相同的委托人。请参阅策略示例

通过操作来条件密钥的可用性

通过操作来条件密钥的可用性
条件键 登录:身份验证 登录:AuthorizeOAuth2Access 登录:CreateOAuth2Token
aws:SourceIp 支持
aws:SourceVpc
aws:SourceVpce
aws:VpcSourceIp
aws:RequestedRegion
aws:PrincipalArn
aws:PrincipalAccount
signin:PrincipalArn
注意

signin:CreateAccount操作仅用于控制台私有访问的 VPC 终端节点策略,不适用于基于资源的策略或 RCP。没有服务特定的条件密钥与之关联。请参阅控制台私有访问权限