本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
AWS 登入條件金鑰參考
此頁面列出您可以在 AWS 登入資源型政策和資源控制政策 (RCPs) 中使用的條件金鑰,並顯示每個金鑰適用的評估階段和動作。只有 signin:PrincipalArn 專屬 AWS 於 Sign-In;其他則是 AWS 全域條件金鑰。如需全域金鑰定義,請參閱AWS 全域條件內容金鑰。
如需服務授權參考中動作和條件索引鍵的完整清單,請參閱 AWS Sign-In 的動作、資源和條件索引鍵。
網路型條件金鑰
這些條件索引鍵會檢查請求的來源。 AWS 登入會針對資源型政策和 RCPs 中的所有 AWS 登入動作 (signin:Authenticate、 signin:AuthorizeOAuth2Access和 signin:CreateOAuth2Token) 進行評估。
| 條件鍵 | 運算子 | 說明 | 使用規則 |
|---|---|---|---|
aws:SourceIp |
IpAddress, NotIpAddress |
公有 IP 地址或 CIDR 範圍 | 當請求使用 VPC 端點時不存在。在相同陳述式中與 VPC 型條件結合使用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:SourceVpc或 aws:SourceVpce條件金鑰。 |
aws:RequestedRegion |
StringEquals,
StringNotEquals |
目標 AWS 區域碼 | 建議在使用 時aws:SourceVpc防止跨區域 VPC ID 衝突。您可以指定多個區域。 |
重要
單一請求包含 aws:SourceIp(公有網路) 或 aws:SourceVpc(VPC 端點),而非兩者。撰寫涵蓋兩個路徑的拒絕政策時,請使用IfExists運算子 (例如 NotIpAddressIfExists) 或建立個別的陳述式。
身分型條件索引鍵
這些條件索引鍵會檢查提出請求的人員。它們僅適用於驗證後動作 (signin:AuthorizeOAuth2Access 和 signin:CreateOAuth2Token),其中已建立主體身分。
| 條件鍵 | 運算子 | 說明 | 範例 |
|---|---|---|---|
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 |
服務特定條件金鑰:signin:PrincipalArn
下列條件金鑰專屬 AWS 於 Sign-In,不是全域 AWS 金鑰。僅在驗證前評估期間可用。在身分驗證完成之前signin:PrincipalArn,使用 識別起始登入的委託人。這是 的預先驗證對等項目aws:PrincipalArn,在驗證之後才能使用。
- 運算子
-
ARN 運算子 (
ArnEquals、ArnLike、ArnNotEquals、ArnNotLike) 和字串運算子 (StringEquals、StringLike)。 - 可用性
-
AWS 登入會在驗證前階段 (
signin:Authenticate動作) 的請求內容中包含此金鑰。它不適用於驗證後動作 (signin:AuthorizeOAuth2Access和signin:CreateOAuth2Token)。 - 資料類型
-
ARN。使用 ARN 運算子而非字串運算子。
- 值類型
-
單一值。
- 支援於
-
以資源為基礎的政策和 RCPs。
使用 ARN 運算子來比較值。您可以指定下列委託人類型:
-
AWS 帳戶 根使用者 (
arn:aws:iam::123456789012:root) -
IAM 使用者 (
arn:aws:iam::123456789012:user/)user-name -
IAM 角色 (
arn:aws:iam::123456789012:role/)role-name
使用案例:將排除的主體身分排除在網路限制之外,防止鎖定,同時仍對所有其他存取嘗試強制執行網路控制。
範例 – 拒絕來自未經授權網路的預先驗證存取,根使用者除外:
{ "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" } } } ] }
此政策拒絕從 203.0.113.0/24 IP 範圍以外的主控台存取,但帳戶根使用者除外。預先驗證陳述式使用 在身分驗證完成之前signin:PrincipalArn豁免根使用者。身分驗證後陳述式會在 OAuth 權杖交換期間,aws:PrincipalArn使用 在身分驗證後豁免相同的委託人。請參閱 政策範例。
依動作的條件索引鍵可用性
| 條件鍵 | Signin:Authenticate | 登入:AuthorizeOAuth2Access | signin:CreateOAuth2Token |
|---|---|---|---|
aws:SourceIp |
是 | 是 | 是 |
aws:SourceVpc |
是 | 是 | 是 |
aws:SourceVpce |
是 | 是 | 是 |
aws:VpcSourceIp |
是 | 是 | 是 |
aws:RequestedRegion |
是 | 是 | 是 |
aws:PrincipalArn |
– | 是 | 是 |
aws:PrincipalAccount |
– | 是 | 是 |
signin:PrincipalArn |
是 | – | – |
注意
signin:CreateAccount 動作僅用於主控台私有存取的 VPC 端點政策,不適用於資源型政策或 RCPs。沒有與之相關聯的服務特定條件索引鍵。請參閱主控台私有存取。