AWS WAF的身分型政策範例 - AWS WAFAWS Firewall Manager、 和 AWS Shield Advanced

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

AWS WAF的身分型政策範例

本節提供 的身分型政策範例 AWS WAF。

根據預設,使用者和角色不具備建立或修改 AWS WAF 資源的權限。他們也無法使用 AWS Management Console、 AWS Command Line Interface (AWS CLI) 或 來執行任務 AWS API。若要授予使用者對所需資源執行動作的許可,IAM管理員可以建立 IAM 政策。然後,管理員可以將IAM政策新增至角色,使用者可以擔任角色。

若要了解如何使用這些範例政策文件來建立以IAM身分為基礎的JSON政策,請參閱 IAM 使用者指南中的建立IAM政策 (主控台)

如需 定義的動作和資源類型的詳細資訊 AWS WAF,包括ARNs每個資源類型的 格式,請參閱服務授權參考中的 AWS WAF V2 的動作、資源和條件索引鍵

政策最佳實務

以身分為基礎的政策會判斷是否有人可以建立、存取或刪除您帳戶中 AWS WAF 的資源。這些動作可能會讓您的 AWS 帳戶產生費用。當您建立或編輯身分型政策時,請遵循下列準則及建議事項:

  • 開始使用 AWS 受管政策並邁向最低權限許可 – 若要開始將許可授予您的使用者和工作負載,請使用 AWS 受管政策,將許可授予許多常見使用案例。它們可在您的 中使用 AWS 帳戶。我們建議您定義特定於使用案例 AWS 的客戶受管政策,進一步減少許可。如需詳細資訊,請參閱IAM《 使用者指南》中的 AWS 受管政策AWS 任務函數的受管政策

  • 套用最低權限許可 – 當您使用 IAM 政策設定許可時, 只會授予執行任務所需的許可。為實現此目的,您可以定義在特定條件下可以對特定資源採取的動作,這也稱為最低權限許可。如需使用 IAM 套用許可的詳細資訊,請參閱IAM《 使用者指南中的政策和許可IAM

  • 使用IAM政策中的條件來進一步限制存取 – 您可以將條件新增至政策,以限制對動作和資源的存取。例如,您可以撰寫政策條件來指定所有請求都必須使用 傳送SSL。如果透過特定 使用服務動作,您也可以使用條件來授予存取服務動作的權限 AWS 服務,例如 AWS CloudFormation。如需詳細資訊,請參閱IAM《 使用者指南》中的IAMJSON政策元素:條件

  • 使用 IAM Access Analyzer 驗證您的IAM政策,以確保安全且功能正常的許可 – IAM Access Analyzer 驗證新的和現有的政策,使政策符合IAM政策語言 (JSON) 和IAM最佳實務。 IAMAccess Analyzer 提供超過 100 個政策檢查和可行的建議,以協助您撰寫安全且實用的政策。如需詳細資訊,請參閱IAM《 使用者指南》中的使用 IAM Access Analyzer 驗證政策

  • 需要多重要素驗證 (MFA) – 如果您有需要 IAM使用者或 根使用者的案例 AWS 帳戶,請開啟 MFA 以獲得額外的安全性。若要在呼叫API操作MFA時要求 ,請將MFA條件新增至您的政策。如需詳細資訊,請參閱IAM《 使用者指南》中的使用 安全API存取MFA

如需 中最佳實務的詳細資訊IAM,請參閱IAM《 使用者指南中的安全最佳實務IAM

使用 AWS WAF 主控台

若要存取 AWS WAF 主控台,您必須擁有一組最低許可。這些許可必須允許您列出和檢視 中 AWS WAF 資源的詳細資訊 AWS 帳戶。如果您建立比最基本必要許可更嚴格的身分型政策,則對於具有該政策的實體 (使用者或角色) 而言,主控台就無法如預期運作。

對於僅對 AWS CLI 或 進行呼叫的使用者,您不需要允許最低主控台許可 AWS API。相反地,只允許存取與其嘗試執行API的操作相符的動作。

為了確保使用者和角色可以使用 AWS WAF 主控台,請至少將 AWS WAF AWSWAFConsoleReadOnlyAccess AWS 受管政策連接到實體。如需此受管政策的相關資訊,請參閱 AWS 受管理的策略: AWSWAFConsoleReadOnlyAccess。如需將受管政策連接至使用者的詳細資訊,請參閱IAM《 使用者指南》中的新增許可給使用者

允許使用者檢視他們自己的許可

此範例會示範如何建立政策,允許 IAM 使用者檢視連接到他們使用者身分的內嵌及受管政策。此政策包含在主控台上完成此動作或使用 AWS CLI 或 以程式設計方式完成此動作的許可 AWS API。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

授予對 AWS WAF CloudFront和 的唯讀存取權 CloudWatch

下列政策會授予使用者對 AWS WAF 資源、Amazon CloudFront Web 分佈和 Amazon CloudWatch 指標的唯讀存取權。對於需要檢視 AWS WAF 條件、規則和 Web 中設定許可的使用者來說,ACLs查看哪個分佈與 Web 相關聯ACL,以及監控 中的指標和請求範例很有用 CloudWatch。這些使用者無法建立、更新或刪除 AWS WAF 資源。

{ "Version":"2012-10-17", "Statement": [ { "Action": [ "wafv2:Get*", "wafv2:List*", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Effect": "Allow", "Resource": "*" } ] }

授予 AWS WAF CloudFront和 的完整存取權 CloudWatch

下列政策可讓使用者執行任何 AWS WAF 操作、在 CloudFront Web 分佈上執行任何操作,以及監控 中的指標和請求範例 CloudWatch。對於身為 AWS WAF 管理員的使用者來說,此功能很有用。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "wafv2:*", "cloudfront:CreateDistribution", "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:UpdateDistribution", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:DeleteDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Effect": "Allow", "Resource": "*" } ] }

我們強烈建議您為具有管理許可的使用者設定多重驗證 (MFA)。如需詳細資訊,請參閱IAM《 使用者指南》中的使用多重要素驗證 (MFA) 裝置搭配 AWS

授予單一 的存取權 AWS 帳戶

此政策會將下列許可授予帳戶 444455556666:

  • 完整存取所有 AWS WAF 操作和資源。

  • 讀取和更新所有 CloudFront 分佈的存取權,這可讓您建立 Web ACLs和 CloudFront 分佈的關聯。

  • 讀取所有 CloudWatch 指標和指標統計資料的存取權,讓您可以在 AWS WAF 主控台中檢視 CloudWatch 資料和請求範例。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:*" ] }, { "Effect": "Allow", "Action": [ "cloudfront:GetDistribution", "cloudfront:GetDistributionConfig", "cloudfront:ListDistributions", "cloudfront:ListDistributionsByWebACLId", "cloudfront:UpdateDistribution", "cloudwatch:ListMetrics", "cloudwatch:GetMetricStatistics", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }

授予單一 Web 的存取權 ACL

下列政策可讓使用者透過 帳戶 ACL中特定 Web 上的 主控台執行任何 AWS WAF 操作444455556666

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", ] }, { "Sid": "consoleAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }

授予對 Web ACL和規則群組的CLI存取權

下列政策可讓使用者透過帳戶 CLI中特定 Web ACL和特定規則群組的 執行任何 AWS WAF 操作444455556666

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", "arn:aws:wafv2:us-east-1:444455556666:regional/rulegroup/test123rulegroup/555555555-6666-1234-abcd-00d11example" ] } ] }

下列政策可讓使用者透過 帳戶 ACL中特定 Web 上的 主控台執行任何 AWS WAF 操作444455556666

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "wafv2:*" ], "Resource": [ "arn:aws:wafv2:us-east-1:444455556666:regional/webacl/test123/112233d7c-86b2-458b-af83-51c51example", ] }, { "Sid": "consoleAccess", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs", "ec2:DescribeRegions" ], "Resource": [ "*" ] } ] }