全部產品
Search
文件中心

Web Application Firewall:授權WAF訪問雲資源

更新時間:Jul 01, 2024

Web Application Firewall(Web Application Firewall,簡稱WAF)為了完成Log Service、資產識別、透明接入的功能,需要擷取其他雲端服務的存取權限。所以,在您首次登入WAF控制台時,必須先授予WAF訪問相關雲資源的許可權,授權後才能正常使用WAF提供的其他雲端服務的功能。本文介紹了如何進行雲資源訪問授權。

服務關聯角色說明

以下是WAF服務關聯角色的介紹:

  • 角色名稱:AliyunServiceRoleForWAF
  • 權限原則名稱:AliyunServiceRolePolicyForWAF
    說明 該權限原則為系統預設提供的策略,策略名稱稱和策略內容都不支援修改。
  • 權限原則:
    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "ecs:DescribeInstances",
                    "ecs:DescribeNetworkInterfaces",
                    "ecs:CreateNetworkInterface",
                    "ecs:DeleteNetworkInterface",
                    "ecs:AttachNetworkInterface",
                    "ecs:DetachNetworkInterface",
                    "ecs:DescribeNetworkInterfacePermissions",
                    "ecs:CreateNetworkInterfacePermission",
                    "ecs:DeleteNetworkInterfacePermission",
                    "ecs:DescribeSecurityGroups",
                    "ecs:DescribeSecurityGroupAttribute",
                    "ecs:CreateSecurityGroup",
                    "ecs:DeleteSecurityGroup",
                    "ecs:AuthorizeSecurityGroup",
                    "ecs:RevokeSecurityGroup",
                    "ecs:DescribeDisks"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "slb:DescribeServerCertificates",
                    "slb:DescribeDomainExtensions",
                    "slb:DescribeLoadBalancers",
                    "slb:DescribeListenerAccessControlAttribute",
                    "slb:DescribeLoadBalancerAttribute",
                    "slb:DescribeLoadBalancerHTTPListenerAttribute",
                    "slb:DescribeLoadBalancerHTTPSListenerAttribute",
                    "slb:DescribeLoadBalancerTCPListenerAttribute",
                    "slb:DescribeLoadBalancerUDPListenerAttribute",
                    "slb:DescribeTLSCipherPolicies",
                    "slb:ListTLSCipherPolicies",
                    "slb:DescribeLoadBalancers"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "alb:ListLoadBalancers",
                    "alb:GetLoadBalancerAttribute",
                    "alb:ListListeners",
                    "alb:GetListenerAttribute",
                    "alb:ListListenerCertificates",
                    "alb:DescribeRegions",
                    "alb:ListSystemSecurityPolicies",
                    "alb:ListSecurityPolicies"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "vpc:DescribeEipAddresses"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "cdn:DescribeUserDomains",
                    "cdn:DescribeCdnDomainDetail",
                    "cdn:DescribeDomainsBySource",
                    "cdn:DescribeUserVipsByDomain"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "yundun-cert:DescribeUserCertificateList"
                ],
                "Resource": "*",
                "Effect": "Allow"
            },
            {
                "Action": [
                    "log:PostLogStoreLogs",
                    "log:GetProject",
                    "log:ListProject",
                    "log:GetLogStore",
                    "log:ListLogStores",
                    "log:CreateLogStore",
                    "log:CreateProject",
                    "log:GetIndex",
                    "log:CreateIndex",
                    "log:UpdateIndex",
                    "log:CreateDashboard",
                    "log:ClearLogStoreStorage",
                    "log:UpdateLogStore",
                    "log:UpdateDashboard",
                    "log:DeleteProject",
                    "log:CreateSavedSearch",
                    "log:UpdateSavedSearch",
                    "log:DeleteLogStore"
                ],
                "Resource": "acs:log:*:*:project/waf*",
                "Effect": "Allow"
            },
            {
                "Action": "ram:DeleteServiceLinkedRole",
                "Resource": "*",
                "Effect": "Allow",
                "Condition": {
                    "StringEquals": {
                        "ram:ServiceName": "waf.aliyuncs.com"
                    }
                }
            }
        ]
    }

    關於權限原則文法的詳細說明,請參見權限原則基本元素

前提條件

  • 已購買WAF執行個體。
  • 確保使用的是阿里雲帳號或擁有建立和刪除服務關聯角色許可權的RAM使用者身份。

建立服務關聯角色

通過Log Service

只有當您已將網站業務接入WAF防護且開通了WAFLog Service,才可以使用該方式建立服務關聯角色。關於網站接入的具體操作,請參見添加網域名稱;關於開通WAFLog Service的具體操作,請參見快速使用WAFLog Service

  1. 登入Web Application Firewall控制台,在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地非中國內地)。

  2. 在左側導覽列,選擇安全營運 > Log Service

  3. 單擊立即授權,並在提示對話方塊,單擊確定

通過開通資產識別

只有中國內地WAF執行個體支援資產識別功能。如果您使用非中國內地WAF執行個體,請選擇通過Log Service透明接入建立服務關聯角色。

  1. 登入Web Application Firewall控制台,在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地非中國內地)。

  2. 在左側導覽列,選擇資產中心 > 資產識別
  3. 單擊免費開通,並在提示對話方塊,單擊確定

通過開通透明接入

  1. 登入Web Application Firewall控制台,在頂部功能表列,選擇WAF執行個體的資源群組和地區(中國內地非中國內地)。

  2. 在左側導覽列,選擇資產中心 > 網站接入
  3. 網域名稱列表頁簽,單擊網站接入
  4. 接入模式設定為透明接入,並單擊免費開通,並在提示對話方塊,單擊確定

完成後,阿里雲將自動為您建立WAF服務關聯角色AliyunServiceRoleForWAF。您可以在RAM控制台身份管理 > 角色頁面,查看阿里雲為WAF自動建立的服務關聯角色。

刪除服務關聯角色

如果不需要使用WAF,您可以刪除其關聯角色AliyunServiceRoleForWAF。具體操作,請參見刪除RAM角色
重要 只有當WAF執行個體已經到期並自動釋放後,您才可以刪除服務關聯角色。
  1. 登入RAM控制台
  2. 在左側導覽列,選擇身份管理 > 角色
  3. 使用搜尋功能,定位到WAF服務關聯角色AliyunServiceRoleForWAF,單擊操作列的刪除
  4. 單擊確定
    存取控制RAM會先檢查WAF服務關聯角色是否仍被WAF執行個體使用:
    • 如果為否,WAF服務關聯角色將被直接刪除。
    • 如果為是,您暫不能刪除WAF服務關聯角色,但可以查看哪些WAF執行個體在使用該角色。您必須先釋放對應的WAF執行個體,才可以刪除WAF服務關聯角色。

常見問題

為什麼我的RAM使用者無法自動建立WAF服務關聯角色AliyunServiceRoleForWAF

您需要擁有指定的許可權,才能自動建立或刪除服務關聯角色。因此,在RAM使用者無法自動建立AliyunServiceRoleForWAF時,您需為RAM使用者添加以下權限原則。詳細操作步驟指導,請參見為RAM角色授權
{
    "Statement": [
        {
            "Action": [
                "ram:CreateServiceLinkedRole"
            ],
            "Resource": "acs:ram:*:主帳號ID:role/*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": [
                        "waf.aliyuncs.com"
                    ]
                }
            }
        }
    ],
    "Version": "1"
}