管理 AWS WAF 資源存取許可的概觀 - AWS WAF、AWS Firewall Manager 與 AWS Shield Advanced

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

管理 AWS WAF 資源存取許可的概觀

EVERYAWS資源是由AWS 帳戶,而建立或存取資源的許可則由許可政策所控管。帳戶管理員可以將許可政策連接到 IAM 身分 (即使用者、群組和角色)。某些服務還支援將許可政策附加至資源。

注意

帳戶管理員 (或管理員使用者) 是具有管理員權限的使用者。如需詳細資訊,請參閱 IAM 最佳實務 (在 IAM 使用者指南 中)。

當您授予許可時,能夠決定取得許可的對象、這些對象取得的資源許可,以及可對上述資源進行的特定操作。

Topics

AWS WAF 資源和操作

在 AWS WAF 中,資源是 Web ACL規則群組IP 集合規則運算式模式集。允許或拒絕存取 AWS WAF 資源的子集,包括在政策的 resource 元素中的資源 ARN。AWS WAF 資源的 ARN 具有下列格式:

arn:aws:wafv2:region:account:scope/resource/resource/ID

下表列出每項資源的配額。

AWS WAF 主控台中的名稱 AWS WAF SDK/CLI 中的名稱 ARN 格式
Web ACL WebACL

arn:aws:wafv2:region:account:scope/webacl/name/ID

規則群組 RuleGroup

arn:aws:wafv2:region:account:scope/rulegroup/name/ID

IP 集合 IPSet arn:aws:wafv2:region:account:scope/ipset/name/ID
規則運算式模式集 RegexPatternSet

arn:aws:wafv2:region:account:scope/regexpatternset/name/ID

若要指定 AWS WAF 資源 ARN,請將 ARN 格式中的變數取代為有效值,如下所示:

  • region:所以此AWS 區域您正在使用的。對於 Amazon CloudFront,請將其設置為us-east-1。若為區域資源,請將此設定為您感興趣的區域。

  • account:您的 IDAWS 帳戶。

  • scope:資源的範圍,可以是regional,適用於 Amazon API Gateway REST API、Application Load Balancer 或AWS AppSyncGraphQL API 或global,可搭配使用與 Amazon CloudFront 分發。

  • name:您提供給AWS WAF資源或萬用字元 (*),以指示所有與指定的類型相關聯的資源。AWS 帳戶。如果您使用萬用字元做為名稱,也必須將它用於 ID。

  • ID:的 IDAWS WAF資源或萬用字元 (*),以指示所有與指定的類型相關聯的資源。AWS 帳戶。如果您使用萬用字元做為 ID,也必須將它用於名稱。

例如,以下 ARN 為區域 us-east-1 中的帳戶 111122223333 指定所有的 Web ACL:

arn:aws:wafv2:us-east-1:111122223333:regional/webacl/*/*

如需詳細資訊,請參閱「」資源中的IAM User Guide

AWS WAF 提供一組操作,用於處理 AWS WAF 資源。如需可用操作的清單,請參閱動作

了解資源所有權

A資源擁有者是AWS 帳戶會建立資源。也就是說,資源擁有者是AWS 帳戶的主要實體(根帳戶、IAM 使用者或 IAM 角色) 來驗證建立資源的請求。下列範例說明其如何運作:

  • 如果您使用的根帳戶認證AWS 帳戶建立AWS WAF資源,您的AWS 帳戶是資源的擁有者。

  • 如果您在AWS 帳戶,並授予建立AWS WAF資源傳送給該使用者時,使用者可以建立AWS WAF資源。不過,您的 AWS 帳戶 (也是該使用者所屬的帳戶) 擁有 AWS WAF 資源。

  • 如果您在AWS 帳戶的許可來建立AWS WAF資源,任何可擔任該角色的人都能建立AWS WAF資源。您的 AWS 帳戶 (即角色所屬帳戶) 會擁有這些 AWS WAF 資源。

管理資源存取

許可政策描述誰可以存取哪些資源。下一節說明可用來建立許可政策的選項。

注意

這些小節使用 IAM 討論AWS WAF。它不提供 IAM 服務的詳細資訊。如需完整的 IAM 文件,請參閱什麼是 IAM?中的IAM User Guide。如需 IAM 政策語法和說明的詳細資訊,請參閱AWS Identity and Access Management政策參考中的IAM User Guide

連接至 IAM 身分的政策稱為以身分為基礎的政策,而連接至資源的政策稱為以資源為基礎的政策。AWS WAF 僅支援以身分為基礎的政策。

Topics

身分類型政策 (IAM 政策)

您可以將政策連接到 IAM 身分。例如,您可以執行下列操作:

  • 將許可政策附加到您帳戶中的使用者或群組— 帳戶管理員可以使用與特定使用者相關聯的許可政策來授予該使用者建立AWS WAF資源。

  • 將許可政策連接至角色 (授予跨帳戶許可)— 您可以將身分型許可政策連接至 IAM 角色,以授予跨帳戶許可。例如,帳戶 A 中的管理員可以建立角色,將跨帳戶許可授與其他AWS 帳戶(例如,帳戶 B) 或AWS服務,如下所示:

    1. 帳戶 A 管理員建立 IAM 角色,並將許可政策連接到可授與帳戶 A 中資源許可的角色。

    2. 帳戶 A 管理員將信任政策連接至該角色,識別帳戶 B 做為可擔任該角的委託人。

    3. 帳戶 B 管理員即可將擔任該角色的許可,委派給帳戶 B 中的任何使用者。這麼做可讓帳戶 B 的使用者建立或存取帳戶 A 的資源。如果您想要將擔任該角色的許可授予 AWS 服務,則信任政策中的委託人也可以是 AWS 服務委託人。

    如需使用 IAM 來委派許可的詳細資訊,請參閱存取管理中的IAM User Guide

以下為一個範例政策,該政策授與對所有資源進行 wafv2:ListWebACLs 動作的許可。在目前的實作情況中,AWS WAF 對於某些 API 動作不支援使用資源 ARN (也稱為資源層級許可) 來識別特定資源,所以您必須指定萬用字元 (*):

{ "Version": "2019-07-29", "Statement": [ { "Sid": "ListWebACLs", "Effect": "Allow", "Action": [ "wafv2:ListWebACLs" ], "Resource": "*" } ] }

如需搭配 AWS WAF 使用以身分為基礎政策的詳細資訊,請參閱將以身分為基礎的政策 (IAM 政策) 用於AWS WAF。如需使用者、群組、角色和許可的詳細資訊,請參閱 IAM 使用者指南中的身分 (使用者、群組和角色)

以資源為基礎的政策

其他服務 (例如 Amazon S3) 也支援以資源為基礎的許可政策。例如,您可以附加政策到 S3 儲存貯體,以管理存取許可到該儲存貯體。AWS WAF 不支援以資源為基礎的政策。

指定政策元素:動作、效果、資源和委託人

本服務為各項 AWS WAF 資源 (請參閱 AWS WAF 資源和操作) 定義了一組 API 操作 (請參閱AWS WAFAPI 許可:動作、資源及條件參考)。AWS WAF 定義一組您可在政策中指定的動作,以授予這些 API 操作的許可。請注意,執行 API 操作可能需要多個動作的許可。在授與特定動作的許可時,您也可以標識允許或拒絕對其執行動作的資源。

以下是最基本的政策元素:

  • 資源 – 在政策中,您可以使用 Amazon Resource Name (ARN) 來識別要套用政策的資源。如需更多詳細資訊,請參閱 AWS WAF 資源和操作

  • 動作 - 您使用動作關鍵字識別您要允許或拒絕的資源操作。例如,wafv2:CreateRuleGroup 許可允許使用者執行 AWS WAFCreateRuleGroup 操作。

  • 效果— 您可以指定使用者請求特定動作的效果。可以為允許或拒絕。如果您不明確授與資源的存取權,將會隱含拒絕存取。您可以也明確拒絕資源存取,這樣做可確保使用者無法存取資源,即使不同政策授予存取也是一樣。

  • Principal— 在以身分為基礎的政策 (IAM 政策),政策連接到的使用者是隱含委託人。AWS WAF不支援資源型政策。

若要進一步了解有關 IAM 政策語法和說明,請參閱AWS Identity and Access Management政策參考中的IAM User Guide

如需顯示所有的 AWS WAF API 動作及其適用的各項資源表格,請參閱 AWS WAFAPI 許可:動作、資源及條件參考

在政策中指定條件

當您授與許可時,您可以使用 IAM 政策語言指定政策生效時間的條件。例如,建議只在特定日期之後套用政策。如需使用政策語言指定條件的詳細資訊,請參閱 IAM 使用者指南中的條件

欲表示條件,您可以使用預先定義的條件金鑰。沒有 AWS WAF 特定的條件金鑰。但有一般AWS條件金鑰,您可以視需要使用條件金鑰。如需完整的清單AWS鍵,請參閱條件金鑰中的IAM User Guide