Web Application Firewall (WAF) で Log Service、アセットディスカバリ、および透過型プロキシモードを有効にするには、AliyunServiceRoleForWAF サービスリンクロールを作成する必要があります。このロールは、これらの機能のいずれかを有効にすると自動的に作成されます。手動でのロール構成は不要です。
仕組み
WAF は、お客様に代わって ECS、SLB、ALB、VPC、CDN、Simple Log Service (SLS)、および証明書サービスと対話するために、AliyunServiceRoleForWAF サービスリンクロールを使用します。このロールは、WAF コンソールで初めて Log Service、アセットディスカバリー、または透過型プロキシモードを有効化した際に自動的に作成されます。
このロールは、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 インスタンス
サービスリンクロールを作成および削除する権限を持つ Alibaba Cloud アカウントまたは RAM ユーザー
AliyunServiceRoleForWAF ロールの作成
このロールは、以下のいずれかの機能を有効にすると自動的に作成されます。最初に利用する予定の機能を選択してください。
Log Service の有効化
この方法では、ウェブサイトがすでに WAF に追加されており、WAF 用の Log Service が有効になっている必要があります。設定手順については、「WAF へのウェブサイトの追加」および「WAF 用 Log Service の利用開始」をご参照ください。
WAF コンソールにログオンします。 トップナビゲーションバーで、お使いの WAF インスタンスがデプロイされているリソースグループとリージョンを選択します。 リージョンには[中国本土]と[中国本土以外]があります。
左側のナビゲーションウィンドウで、セキュリティ運用 > Log Service を選択します。
「今すぐ承認」をクリックします。「ヒント」ダイアログで、「OK」をクリックします。
アセットディスカバリの有効化
この方法は、WAF インスタンスが中国本土にデプロイされている場合にのみ利用可能です。インスタンスが中国本土以外にある場合は、代わりに Log Service または透過型プロキシモードの方法を使用してください。
WAF コンソールにログインします。WAF コンソール の上部ナビゲーションバーで、WAF インスタンスがデプロイされているリソースグループとリージョンを選択します。リージョンは 中国本土 または 中国本土以外 です。
左側のナビゲーションウィンドウで、アセットセンター > アセットディスカバリ を選択します。
[承認して有効化] をクリックします。[ヒント] ダイアログで、[OK] をクリックします。
透過型プロキシモードの有効化
WAF コンソールにログインします。トップ ナビゲーションバーで、リソースグループと WAF インスタンスがデプロイされているリージョンを選択します。リージョンは、中国本土または中国本土以外のいずれかです。
左側のナビゲーションウィンドウで、[アセットセンター] > [Web サイトアクセス] を選択します。
[ドメイン] タブで、[Web サイトへのアクセス] をクリックします。
「[アクセスモード]」を「透過プロキシモード」に設定し、次に「[承認済みアクティベーション]」をクリックします。「[ヒント]」ダイアログで、「[OK]」をクリックします。
Alibaba Cloud は自動的に AliyunServiceRoleForWAF ロールを作成します。確認するには、RAM コンソールにログインし、左側のナビゲーションウィンドウで、[ID] > [ロール] を選択します。
AliyunServiceRoleForWAF ロールの削除
サービスリンクロールは、WAF インスタンスの有効期限が切れ、自動的にリリースされた後にのみ削除できます。
ロールを削除するには、次の手順を実行します。
ご利用の WAF インスタンスをリリースし、自動的にリリースされるまで待ちます。
RAM コンソールにログインし、左側のナビゲーションウィンドウで [ID] > [ロール] を選択します。
AliyunServiceRoleForWAF を見つけて、[操作] 列の [削除ロール] をクリックします。
ダイアログで、ロール名を入力し、[ロールの削除] をクリックします。
Resource Access Management (RAM) は、WAF インスタンスがまだロールを使用しているかどうかを確認します。
インスタンスがロールを使用していない場合、ロールは削除されます。
インスタンスがまだロールを使用している場合、削除は失敗します。RAM は、ロールを使用している WAF インスタンスを一覧表示します。再試行する前に、それらのインスタンスをリリースしてください。
RAM ロールの削除に関する一般的な手順については、「RAM ロールの削除」をご参照ください。
よくある質問
RAM ユーザーに対して AliyunServiceRoleForWAF が自動的に作成されないのはなぜですか?
RAM ユーザーは、サービスリンクロールを作成するための明示的な権限を必要とします。ご利用の RAM ユーザーに以下のポリシーをアタッチし、<account-ID> をご利用の Alibaba Cloud アカウント ID に置き換えてください。
{
"Statement": [
{
"Action": [
"ram:CreateServiceLinkedRole"
],
"Resource": "acs:ram:*:<account-ID>:role/*",
"Effect": "Allow",
"Condition": {
"StringEquals": {
"ram:ServiceName": [
"waf.aliyuncs.com"
]
}
}
}
],
"Version": "1"
}RAM ユーザーにポリシーをアタッチする手順については、「RAM ロールに権限を付与する」をご参照ください。