View a markdown version of this page

使用 IAM 政策控制存取 - AWS Identity and Access Management

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 IAM 政策控制存取

IAM 提供多種政策類型,以控制對傳出聯合身分功能的存取。您可以使用身分型政策來控制哪些 IAM 主體可以請求權杖,並強制執行特定權杖屬性,例如對象、生命週期和簽署演算法。服務控制政策 SCPs) 可讓您對 Organizations 中的所有帳戶強制執行 AWS 整個組織的字符產生限制。資源控制政策 RCPs) 控制資源層級的存取。您也可以使用 VPC 端點政策來限制哪些主體可以透過 VPC 端點存取 API,將 AWS STS GetWebIdentityToken網路層級控制新增至您的安全狀態。本節說明如何使用這些政策類型和條件索引鍵實作精細存取控制。

若要請求身分字符,IAM 主體必須具有 sts:GetWebIdentityToken許可。透過連接至 IAM 使用者或角色的身分政策授予此許可。若要允許標籤 (金鑰、值對) 傳遞給 GetWebIdentityToken 呼叫,IAM 主體必須具有 sts:TagGetWebIdentityToken許可。

  • 使用 sts:IdentityTokenAudience 條件金鑰來限制哪些外部服務可以接收字符。

  • 使用 sts:DurationSeconds 條件金鑰來強制執行字符生命週期上限。

  • 使用 sts:SigningAlgorithm 條件金鑰來要求特定的密碼編譯演算法。

  • 使用 aws:RequestTag 條件金鑰,將請求中傳遞的標籤鍵值對與您在政策中指定的標籤對進行比較。

  • 使用 aws:TagKeys 條件索引鍵,將請求中的標籤索引鍵與您在政策中指定的索引鍵進行比較。

請參閱 IAM 和 AWS STS 條件金鑰,進一步了解 IAM 政策中可用的條件金鑰。

此範例身分政策結合了多個條件索引鍵:

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowTokenGenerationWithRestrictions", "Effect": "Allow", "Action": "sts:GetWebIdentityToken", "Resource": "*", "Condition": { "ForAnyValue:StringEquals": { "sts:IdentityTokenAudience": [ "https://api1.example.com", "https://api2.example.com" ] }, "NumericLessThanEquals": { "sts:DurationSeconds": 300 }, "StringEquals": { "sts:SigningAlgorithm": "ES384" } } } ] }

最佳實務

遵循這些建議,將 AWS 您的身分安全地聯合到外部 服務。

  • 使用較短的字符生命週期:請求具有最短生命週期的字符,以符合您的操作需求。

  • 使用 IAM 政策實作最低權限存取並限制權杖屬性:僅將 sts:GetWebIdentityToken許可授予需要它的 IAM 主體。視需要使用條件索引鍵來指定簽署演算法、允許的權杖對象和權杖生命週期上限。

  • 驗證外部服務中的宣告:為了安全起見,請一律驗證相關宣告,例如主旨 ("sub")、受眾 ("aud") 等,以確保符合您預期的值。盡可能驗證自訂宣告,以在外部服務中啟用精細的授權決策。