首次开通Web应用防火墙(WAF)的透明接入、资产识别、日志服务功能时,您需要先完成允许WAF访问云资源的授权。本文介绍了如何进行云资源访问授权。

前提条件

  • 您已购买WAF实例。更多信息,请参见开通Web应用防火墙
  • 您使用的是阿里云主账号或拥有创建和删除服务关联角色权限的RAM用户账号。

背景信息

使用WAF的透明接入、资产识别、日志服务功能时,WAF需要访问云服务器ECS、负载均衡、CDN、证书服务、日志服务等云服务的资源,您可通过系统自动创建的WAF服务关联角色AliyunServiceRoleForWAF获取访问权限。服务关联角色无需您手动创建或做任何修改。相关内容,请参见服务关联角色

操作步骤

  1. 登录Web应用防火墙控制台
  2. 开通云资源访问授权。
    您首次开通WAF的 透明接入、资产识别、日志服务功能时,阿里云都会提示您需要授权WAF访问其他云资源。您只需从以下方式中选择一种进行授权,且只需授权一次即可:
    • 方式一:通过开通透明接入进行授权
      操作步骤如下:
      1. 在左侧导航栏,选择资产中心 > 网站接入
      2. 单击网站接入
      3. 可选:单击手动添加其他网站
      4. 接入模式设置为透明接入,并单击免费开通
      透明接入(SLR)
    • 方式二:通过开通资产识别进行授权
      操作步骤如下:
      1. 在左侧导航栏,选择资产中心 > 网站接入
      2. 单击免费开通
      资产识别(SLR)
    • 方式三:通过开通日志服务进行授权
      操作步骤如下:
      1. 在左侧导航栏,选择日志管理 > 日志服务
      2. 单击立即授权
      日志服务(SLR)
  3. 提示对话框,单击确定提示(SLR)
    您单击 确定后,阿里云将自动为您创建WAF服务关联角色AliyunServiceRoleForWAF。

    您可以在RAM控制台RAM角色管理页面,查看阿里云为WAF自动创建的服务关联角色。只有创建服务关联角色AliyunServiceRoleForWAF后,您的WAF实例才能访问云服务器ECS、负载均衡、CDN、证书服务、日志服务等关联云服务的资源。

    AliyunServiceRoleForWaf

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"
                ],
                "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,您可以删除WAF服务关联角色AliyunServiceRoleForWAF。在删除服务关联角色前您需要先释放已有的WAF实例。在释放已有的WAF实例后,您可以参考以下步骤,在RAM控制台删除WAF服务关联角色。

  1. 登录RAM控制台
  2. 在左侧导航栏,单击RAM角色管理
  3. 使用搜索功能,定位到WAF服务关联角色AliyunServiceRoleForWAF,单击操作列的删除
  4. 单击确定

相关问题

为什么我的RAM用户无法自动创建WAF服务关联角色AliyunServiceRoleForWAF?

您需要拥有指定的权限,才能自动创建或删除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"
}