Azure DDoS 防护与应用程序设计最佳做法相结合,提供增强的 DDoS 缓解功能来防御分布式拒绝服务 (DDoS) 攻击。 它会自动进行优化,以帮助保护虚拟网络中的特定 Azure 资源。 使用 Azure DDoS 防护有很多好处。
Service Fabric 托管群集支持 Azure DDoS 网络保护,并允许将 Azure 虚拟机规模集与 Azure DDoS 网络保护计划关联。 该计划由客户创建,在托管群集 ARM 模板中传递计划的资源 ID。
在 Service Fabric 托管群集中使用 DDoS 保护
要求
使用 Service Fabric API 版本 2023-07-01-preview 或更高版本。
步骤
以下部分介绍在 Service Fabric 托管群集中使用 DDoS 网络保护应采取的步骤:
按照快速入门:创建和配置 Azure DDoS 网络保护中的步骤,通过门户、Azure PowerShell 或 Azure CLI 创建 DDoS 网络保护计划。 记下 ddosProtectionPlanName 和 ddosProtectionPlanId,以便在后面的步骤中使用。
将 DDoS 保护计划链接到 Service Fabric 托管群集为你管理的虚拟网络。 要执行此操作,必须授予 SFMC 权限才能将你的 DDoS 保护计划加入虚拟网络。 可以通过为 SFMC 分配“网络参与者”Azure 角色来授予此权限,如以下步骤所述:
答: 从 Service Fabric 资源提供程序应用程序的订阅中获取服务
Id
。Connect-AzAccount -Environment AzureChinaCloud Select-AzSubscription -SubscriptionId <SubId> Get-AzADServicePrincipal -DisplayName "Azure Service Fabric Resource Provider"
注释
确保你位于正确的订阅中,如果订阅位于其他租户中,则主体 ID 将更改。
ServicePrincipalNames : {74cb6831-0dbb-4be1-8206-fd4df301cdc2} ApplicationId : 74cb6831-0dbb-4be1-8206-fd4df301cdc2 ObjectType : ServicePrincipal DisplayName : Azure Service Fabric Resource Provider Id : 00000000-0000-0000-0000-000000000000
请记下上面的输出中的 Id,它将在后面的步骤中用作 principalId
角色定义名称 角色定义 ID 网络参与者 4d97b98b-1d4f-4787-a291-c67834d212e7 请记下
Role definition name
和Role definition ID
属性值,以便在后面的步骤中使用B. 示例 ARM 部署模板向具有参与者访问权限的 DDoS 保护计划添加角色分配。 有关 Azure 角色的详细信息,请参阅 Azure 内置角色 - Azure RBAC。 此角色分配在模板的资源部分中定义,其中包含 PrincipalId 和从第一步确定的角色定义 ID。
"variables": { "sfApiVersion": "2023-07-01-preview", "ddosProtectionPlanName": "YourDDoSProtectionPlan", "ddosProtectionPlanId": "[concat('/subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/sampleRg/providers/Microsoft.Network/ddosProtectionPlans/', variables('ddosProtectionPlanName'))]", "sfrpPrincipalId": "00000000-0000-0000-0000-000000000000", "ddosProtectionPlanRoleAssignmentID": "[guid(variables('ddosProtectionPlanId'), 'SFRP-Role')]" }, "resources": [ { "type": "Microsoft.Authorization/roleAssignments", "apiVersion": "2020-04-01-preview", "name": "[variables('ddosProtectionPlanRoleAssignmentID')]", "scope": "[concat('Microsoft.Network/ddosProtectionPlans/', variables('ddosProtectionPlanName'))]", "properties": { "roleDefinitionId": "[concat('/subscriptions/', subscription().subscriptionId, '/providers/Microsoft.Authorization/roleDefinitions/', '4d97b98b-1d4f- 4787-a291-c67834d212e7')]", "principalId": "[variables('sfrpPrincipalId')]" } } ]
也可以通过 PowerShell 使用第一步确定的 PrincipalId 和角色定义名称(参与者,如适用)来添加角色分配。
New-AzRoleAssignment -PrincipalId "sfrpPrincipalId" ` -RoleDefinitionId "4d97b98b-1d4f-4787-a291-c67834d212e7" ` -ResourceName <resourceName> ` -ResourceType <resourceType> ` -ResourceGroupName <resourceGroupName>
在 Service Fabric 托管群集创建过程中,使用用于分配角色和添加 DDoS 保护配置的示例 ARM 部署模板。 使用上面获取的
principalId
、ddosProtectionPlanName
和ddosProtectionPlanId
更新模板。还可以修改现有的 ARM 模板,并在 Microsoft.ServiceFabric/managedClusters 资源下添加新属性
ddosProtectionPlanId
,该资源采用 DDoS 保护网络保护计划的资源 ID。ARM 模板:
{ "apiVersion": "2023-07-01-preview", "type": "Microsoft.ServiceFabric/managedclusters", }, "properties": { "ddosProtectionPlanId": "[parameters('ddosProtectionPlanId')]" }