华为云用户手册

  • DataArts Studio 控制台功能依赖的角色或策略 DataArts Studio服务各组件功能所需依赖服务的权限如表2所示。在实际授权场景中,推荐为开发者用户配置DataArts Studio服务级别的依赖服务最小权限(可参考如何最小化授权 IAM 用户使用DataArts Studio,为用户配置最小权限),开发者用户的最小依赖服务权限如表3所示。 在实际授权场景中,DAYU Administrator和DAYU User系统角色已经预置了依赖服务的管理员权限。为了避免普通用户/用户组被授予DAYU User系统角色导致其拥有的依赖服务权限过大的风险,您可以在为用户组授权DAYU User系统角色后,手动删除用户组的周边依赖权限,再为用户组授予所需依赖服务的最小权限合集。 表2 DataArts Studio控制台依赖服务的角色或策略 控制台功能 依赖服务 需配置角色/策略 具体功能 管理中心 BSS bss:coupon:view bss:renewal:update bss:discount:view bss:order:view bss:order:pay bss:order:update 创建增量包或DataArts Studio实例 KMS kms:cmk:get kms:cmk:list kms:cmk:create kms:cmk:decrypt kms:cmk:encrypt kms:dek:create kms:dek:encrypt kms:dek:decrypt 创建数据连接时,使用KMS加解密 DWS dws:cluster:list dws:cluster:getDetail dws:openAPICluster:getDetail 创建DWS数据连接 MRS mrs:cluster:get mrs:cluster:list 创建MRS数据连接 VPC vpc:publicIps:get vpc:publicIps:list vpc:vpcs:get vpc:subnets:get 创建MRS数据连接 RDS rds:*:get rds:*:list 创建RDS数据连接 数据集成 VPC vpc:publicIps:get vpc:publicIps:list vpc:vpcs:get vpc:vpcs:list vpc:subnets:get vpc:securityGroups:get vpc:firewalls:list vpc:routeTables:list vpc:subNetworkInterfaces:list 创建 CDM 集群或DataArts Studio实例 E CS ecs:flavors:get ecs:cloudServerFlavors:get ecs:availabilityZones:list 创建CDM集群或DataArts Studio实例 CDM cdm:cluster:create 创建CDM集群 KMS kms:cmk:get kms:cmk:list kms:cmk:create kms:cmk:decrypt kms:cmk:encrypt kms:dek:create kms:dek:encrypt kms:dek:decrypt 创建数据连接时,使用KMS加解密 MRS mrs:cluster:get mrs:cluster:list mrs:job:get mrs:job:list 创建MRS数据连接 DWS dws:cluster:list dws:cluster:getDetail dws:openAPICluster:getDetail 创建DWS数据连接 CDM cdm:cluster:get cdm:cluster:list cdm:link:operate cdm:job:operate 通过CDM控制台操作时,需要CDM服务权限 CES ces:*:get ces:*:list 查看CES监控 CSS css:*:get css:*:list 创建CSS连接 CloudTable cloudtable:*:get cloudtable:*:list 创建CloudTable连接 RDS rds:*:get rds:*:list 创建RDS连接 Config rms:resources:list 创建CDM集群 数据开发 OBS obs:object:GetObject obs:object:PutObject obs:bucket:GetBucketLocation obs:bucket:ListAllMyBuckets obs:bucket:ListBucket obs:bucket:CreateBucket 运行脚本、运行作业以及备份作业 SMN smn:topic:publish smn:topic:list 作业通知 KMS kms:cmk:get kms:cmk:list kms:cmk:create kms:cmk:decrypt kms:cmk:encrypt kms:dek:create kms:dek:encrypt kms:dek:decrypt 创建数据连接时,使用KMS加解密 MRS mrs:cluster:get mrs:cluster:list mrs:job:submit mrs:job:delete mrs:job:stop mrs:sql:execute mrs:sql:cancel mrs:job:get mrs:job:list MRS类型作业节点运行: MRS Presto SQL、MRS Spark、MRS Spark Python、MRS Flink Job、 MRS MapReduce MRS Spark SQL、MRS Hive SQL DLI dli:queue:submitJob dli:jobs:create dli:jobs:update dli:jobs:get dli:jobs:list dli:jobs:listAll DLI类型作业节点运行: DLI SQL、DLI Spark OBS obs:object:GetObject obs:object:PutObject obs:object:DeleteObject obs:bucket:GetBucketLocation obs:bucket:ListAllMyBuckets obs:bucket:ListBucket obs:bucket:ListBucketVersions obs:bucket:CreateBucket obs:bucket:DeleteBucket OBS类型作业节点运行: Create OBS、Delete OBS、OBS Manager DWS dws:cluster:list dws:cluster:getDetail dws:openAPICluster:getDetail 创建DWS数据连接 CDM cdm:cluster:get cdm:cluster:list cdm:job:operate 数据连接需要Agent的相关脚本、作业,以及CDM作业运行: RDS SQL、DWS SQL、Hive SQL、SPARK SQL、Shell、Python CES ces:metricData:list 运维概览,查询DLI队列CPU GES ges:graph:access ges:graph:operate ges:graph:list ges:graph:getDetail ges:metadata:create ges:metadata:operate ges:metadata:delete ges:metadata:list ges:metadata:getDetail ges:jobs:list ges:jobs:getDetail Import GES作业节点运行 ECS ecs:servers:list ecs:servers:get ecs:servers:stop ecs:servers:start ecs:cloudServers:list Open/Close Resource作业节点运行,创建主机连接 DLI dli:queue:submitJob dli:queue:cancelJob dli:group:useGroup dli:group:getGroup dli:group:updateGroup dli:group:deleteGroup dli:group:listAllGroup dli:database:createDatabase dli:database:dropDatabase dli:database:displayDatabase dli:database:displayAllDatabases dli:database:explain dli:database:createView dli:database:createTable dli:database:displayAllTables dli:database:createFunction dli:database:describeFunction dli:database:showFunctions dli:database:dropFunction dli:table:select dli:table:update dli:table:delete dli:table:dropTable dli:table:describeTable dli:table:showCreateTable dli:table:showPartitions dli:table:showSegments dli:table:showTableProperties dli:table:insertOverwriteTable dli:table:insertIntoTable dli:table:compaction dli:table:truncateTable dli:table:alterView dli:table:alterTableRename dli:table:alterTableAddColumns dli:table:alterTableDropColumns dli:table:alterTableChangeColumn dli:table:alterTableSetLocation dli:table:alterTableAddPartition dli:table:alterTableRenamePartition dli:table:alterTableSetProperties dli:table:alterTableRecoverPartition dli:table:alterTableDropPartition dli:column:select dli:jobs:create dli:jobs:delete dli:jobs:start dli:jobs:stop dli:jobs:update dli:jobs:export dli:jobs:get dli:jobs:list dli:jobs:listAll dli:resource:useResource dli:resource:updateResource dli:resource:deleteResource dli:resource:getResource dli:resource:listAllResource dli:variable:update dli:variable:delete DLI类型作业/脚本运行 IAM iam:agencies:listAgencies 获取作业委托 DIS DIS Operator DIS User DIS类型作业节点运行: DIS Stream、DIS Dump、DIS Client SWR SWR Admin 仅当在数据开发组件作业中使用DLI Spark节点选择自定义镜像时,需要 容器镜像服务 中的镜像读取权限。 推荐通过镜像授权管理,添加所需镜像的读取权限。不推荐直接为用户授予SWR Admin系统角色, 可能存在权限过大的风险。 数据目录 OBS obs:object:GetObject obs:bucket:GetBucketStorage obs:bucket:GetBucketLocation obs:bucket:ListAllMyBuckets obs:bucket:ListBucket OBS元数据采集 DIS dis:streams:list dis:transferTasks:list DIS元数据采集 CSS css:cluster:list CSS元数据采集 GES ges:graph:list ges:graph:getDetail ges:metadata:list ges:metadata:getDetail GES元数据采集 DLI dli:database:displayDatabase dli:database:displayAllDatabases dli:table:select dli:table:describeTable dli:table:showPartitions dli:table:showTableProperties dli:jobs:create dli:jobs:get DLI元数据采集&数据概要分析 CDM cdm:cluster:list CSS元数据采集 数据质量 SMN smn:topic:publish smn:topic:list 配置作业通知 OBS obs:object:GetObject obs:object:PutObject obs:bucket:GetBucketLocation obs:bucket:ListAllMyBuckets obs:bucket:ListBucket obs:bucket:CreateBucket 导出质量报告 MRS mrs:job:submit mrs:sql:execute mrs:sql:cancel mrs:job:get MRS质量作业运行 DLI dli:queue:submitJob dli:jobs:get dli:jobs:listAll DLI质量作业运行 数据安全 DLI dli:queue:submitJob dli:queue:cancelJob dli:database:displayDatabase dli:database:displayAllDatabases dli:database:displayAllTables dli:table:describeTable dli:jobs:create dli:jobs:stop dli:jobs:get dli:resource:deleteResource dli:resource:getResource dli:resource:listAllResource DLI权限管控 DWS dws:cluster:list dws:cluster:getDetail dws:openAPICluster:getDetail DWS权限管控 MRS mrs:cluster:list mrs:job:submit mrs:job:stop MRS权限管控 KMS kms:cmk:list kms:cmk:encrypt kms:cmk:decrypt 使用KMS加解密 CDM 任意cdm权限,例如cdm:cluster:get DWS和MRS权限管控 表3 开发者用户的依赖服务最小权限合集 权限类型 角色与策略权限-系统角色 角色与策略权限-自定义策略 角色与策略权限-自定义策略 是否必配 必配 必配 必配 权限 DIS Operator DIS User (可选,不推荐)SWR Admin 说明: 仅当在数据开发组件作业中使用DLI Spark节点选择自定义镜像时,需要容器 镜像服务 中的镜像读取权限。 推荐通过镜像授权管理,添加所需镜像的读取权限。不推荐直接为用户授予SWR Admin系统角色, 可能存在权限过大的风险。 依赖的全局级(global级)云服务的自定义策略DataArtsStudio_PermissionsOfDependentServices_global: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "obs:object:GetObject", "obs:object:PutObject", "obs:object:DeleteObject", "obs:bucket:GetBucketStorage", "obs:bucket:GetBucketLocation", "obs:bucket:ListAllMyBuckets", "obs:bucket:ListBucket", "obs:bucket:ListBucketVersions", "obs:bucket:CreateBucket", "obs:bucket:DeleteBucket", "rms:resources:list", "iam:agencies:listAgencies" ] } ] } 依赖的项目级(region级)云服务的自定义策略DataArtsStudio_PermissionsOfDependentServices_region: { "Version": "1.1", "Statement": [ { "Effect": "Allow", "Action": [ "cdm:cluster:get", "cdm:cluster:list", "cdm:cluster:create", "cdm:link:operate", "cdm:job:operate", "ces:*:get", "ces:*:list", "cloudtable:*:get", "cloudtable:*:list", "css:*:get", "css:*:list", "dis:streams:list", "dis:transferTasks:list", "dli:queue:submitJob", "dli:queue:cancelJob", "dli:table:insertOverwriteTable", "dli:table:insertIntoTable", "dli:table:alterView", "dli:table:alterTableRename", "dli:table:compaction", "dli:table:truncateTable", "dli:table:alterTableDropColumns", "dli:table:alterTableSetProperties", "dli:table:alterTableChangeColumn", "dli:table:showSegments", "dli:table:alterTableRecoverPartition", "dli:table:dropTable", "dli:table:update", "dli:table:alterTableDropPartition", "dli:table:alterTableAddPartition", "dli:table:alterTableAddColumns", "dli:table:alterTableRenamePartition", "dli:table:delete", "dli:table:alterTableSetLocation", "dli:table:describeTable", "dli:table:showPartitions", "dli:table:showCreateTable", "dli:table:showTableProperties", "dli:table:select", "dli:resource:updateResource", "dli:resource:useResource", "dli:resource:getResource", "dli:resource:listAllResource", "dli:resource:deleteResource", "dli:database:explain", "dli:database:createDatabase", "dli:database:dropFunction", "dli:database:createFunction", "dli:database:displayAllDatabases", "dli:database:displayAllTables", "dli:database:displayDatabase", "dli:database:describeFunction", "dli:database:createView", "dli:database:createTable", "dli:database:showFunctions", "dli:database:dropDatabase", "dli:group:useGroup", "dli:group:updateGroup", "dli:group:listAllGroup", "dli:group:getGroup", "dli:group:deleteGroup", "dli:column:select", "dli:jobs:start", "dli:jobs:export", "dli:jobs:update", "dli:jobs:list", "dli:jobs:listAll", "dli:jobs:get", "dli:jobs:delete", "dli:jobs:create", "dli:jobs:stop", "dli:variable:update", "dli:variable:delete", "dws:cluster:list", "dws:cluster:getDetail", "dws:openAPICluster:getDetail", "ecs:servers:get", "ecs:servers:list", "ecs:servers:stop", "ecs:servers:start", "ecs:flavors:get", "ecs:cloudServerFlavors:get", "ecs:cloudServers:list", "ecs:availabilityZones:list", "ges:graph:access", "ges:metadata:create", "ges:jobs:list", "ges:graph:operate", "ges:jobs:getDetail", "ges:graph:getDetail", "ges:graph:list", "ges:metadata:list", "ges:metadata:getDetail", "ges:metadata:delete", "ges:metadata:operate", "kms:cmk:get", "kms:cmk:list", "kms:cmk:create", "kms:cmk:decrypt", "kms:cmk:encrypt", "kms:dek:create", "kms:dek:encrypt", "kms:dek:decrypt", "mrs:cluster:get", "mrs:cluster:list", "mrs:job:get", "mrs:job:list", "mrs:job:submit", "mrs:job:stop", "mrs:job:delete", "mrs:sql:execute", "mrs:sql:cancel", "rds:*:get", "rds:*:list", "smn:topic:publish", "smn:topic:list", "vpc:publicIps:list", "vpc:publicIps:get", "vpc:vpcs:get", "vpc:vpcs:list", "vpc:subnets:get", "vpc:securityGroups:get", "vpc:firewalls:list", "vpc:routeTables:list", "vpc:subNetworkInterfaces:list" ] } ] }
  • DataArts Studio权限 默认情况下,管理员创建的IAM用户没有任何权限,需要将其加入用户组,并给用户组授予策略或角色,才能使得用户组中的用户获得对应的权限,这一过程称为授权。授权后,用户就可以基于被授予的权限对云服务进行操作。 DataArts Studio部署时通过物理区域划分,为项目级服务。授权时,“作用范围”需要选择“区域级项目”,然后在指定区域对应的项目中设置相关权限,并且该权限仅对此项目生效;如果在“所有项目”中设置权限,则该权限在所有区域项目中都生效。访问DataArts Studio时,需要先切换至授权区域。 DataArts Studio仅支持基于系统角色的授权,不支持策略授权。为了实现精细的权限管控,DataArts Studio提供了系统角色+工作空间角色授权的能力,由工作空间角色授权具体的操作权限,并支持自定义不同权限点的工作空间角色。 IAM提供了以下两种授权机制。注意,DataArts Studio仅支持其中的IAM角色方式,不支持IAM策略。 IAM角色:IAM最初提供的一种根据用户的工作职能定义权限的粗粒度授权机制。该机制以服务为粒度,提供有限的服务相关角色用于授权。传统的IAM角色并不能满足用户对精细化授权的要求,无法完全达到企业对权限最小化的安全管控要求。 IAM策略:IAM最新提供的一种细粒度授权的能力,可以精确到具体服务的操作、资源以及请求条件等。基于策略的授权是一种更加灵活的授权方式,能够满足企业对权限最小化的安全管控要求。 如图1和表1所示,DataArts Studio的IAM系统角色包括DAYU Administrator、DAYU User和DataArts Studio User;工作空间角色是基于IAM角色DAYU User或DataArts Studio User进一步授予的,权限列表列出了DataArts Studio常用操作与工作空间角色的授权关系,您可以参照这些权限列表选择合适的角色。 图1 权限体系 表1 DataArts Studio系统角色 系统角色名称 描述 类别 DAYU Administrator 实例管理员,拥有对DataArts Studio实例及工作空间的所有管理权限、依赖服务权限,以及所有工作空间内的所有业务操作权限。 说明: Tenant Administrator具有除 统一身份认证 服务外,其他所有服务的所有执行权限。即Tenant Administrator权限的用户也拥有对DataArts Studio的所有执行权限。 系统角色 DAYU User 普通用户,具备DataArts Studio实例及工作空间的查看权限,以及依赖服务权限。普通用户需要被授予任一工作空间角色后,才能拥有对应角色的业务操作权限。 工作空间有管理员、开发者、部署者、运维者和访客五种预置角色和自定义角色,每种角色的介绍如下,具体操作权限请参见权限列表。 管理员:工作空间管理员,拥有工作空间内所有的业务操作权限。建议将项目负责人、开发责任人、运维管理员设置为管理员角色。 开发者:开发者拥有工作空间内创建、管理工作项的业务操作权限。建议将任务开发、任务处理的用户设置为开发者。 运维者:运维者具备工作空间内运维调度等业务的操作权限,但无法更改工作项及配置。建议将运维管理、状态监控的用户设置为运维者。 访客:访客可以查看工作空间内的数据,但无法操作业务。建议将只查看空间内容、不进行操作的用户设置为访客。 部署者:企业模式独有,具备工作空间内任务包发布的相关操作权限。在企业模式中,开发者提交脚本或作业版本后,系统会对应产生发布任务。开发者确认发包后,需要部署者审批通过,才能将修改后的作业同步到生产环境。 自定义角色:如果预置角色不能满足您的需求,您也可以创建自定义角色。自定义角色的权限可自由配置,实现业务操作权限最小化。 系统角色 DataArts Studio User 普通用户,具备DataArts Studio实例及工作空间的查看权限,但不具备依赖服务权限。普通用户需要被授予依赖服务权限+任一工作空间角色后,才能拥有对应角色的业务操作权限。 依赖服务权限详见表2。 工作空间有管理员、开发者、部署者、运维者和访客五种预置角色和自定义角色,每种角色的介绍如下,具体操作权限请参见权限列表。 管理员:工作空间管理员,拥有工作空间内所有的业务操作权限。建议将项目负责人、开发责任人、运维管理员设置为管理员角色。 开发者:开发者拥有工作空间内创建、管理工作项的业务操作权限。建议将任务开发、任务处理的用户设置为开发者。 运维者:运维者具备工作空间内运维调度等业务的操作权限,但无法更改工作项及配置。建议将运维管理、状态监控的用户设置为运维者。 访客:访客可以查看工作空间内的数据,但无法操作业务。建议将只查看空间内容、不进行操作的用户设置为访客。 部署者:企业模式独有,具备工作空间内任务包发布的相关操作权限。在企业模式中,开发者提交脚本或作业版本后,系统会对应产生发布任务。开发者确认发包后,需要部署者审批通过,才能将修改后的作业同步到生产环境。 自定义角色:如果预置角色不能满足您的需求,您也可以创建自定义角色。自定义角色的权限可自由配置,实现业务操作权限最小化。 系统角色
  • 访问控制 您可以使用统一身份认证服务(Identity and Access Management,简称IAM)进行精细的权限管理。该服务提供用户身份认证、权限分配、访问控制等功能,可以帮助您安全的控制华为云资源的访问。关于IAM的详细介绍,请参见IAM产品介绍。 DataArts Studio仅支持基于系统角色的授权,不支持策略授权。为了实现精细的权限管控,DataArts Studio提供了系统角色+工作空间角色授权的能力,由工作空间角色授权具体的操作权限,并支持自定义不同权限点的工作空间角色。 如图1和表1所示,DataArts Studio的IAM系统角色包括DAYU Administrator、DAYU User和DataArts Studio User;工作空间角色是基于IAM角色DAYU User或DataArts Studio User进一步授予的,权限列表列出了DataArts Studio常用操作与工作空间角色的授权关系,您可以参照这些权限列表选择合适的角色。 图1 权限体系 表1 DataArts Studio系统角色 系统角色名称 描述 类别 DAYU Administrator 实例管理员,拥有对DataArts Studio实例及工作空间的所有管理权限、依赖服务权限,以及所有工作空间内的所有业务操作权限。 说明: Tenant Administrator具有除统一身份认证服务外,其他所有服务的所有执行权限。即Tenant Administrator权限的用户也拥有对DataArts Studio的所有执行权限。 系统角色 DAYU User 普通用户,具备DataArts Studio实例及工作空间的查看权限,以及依赖服务权限。普通用户需要被授予任一工作空间角色后,才能拥有对应角色的业务操作权限。 工作空间有管理员、开发者、部署者、运维者和访客五种预置角色和自定义角色,每种角色的介绍如下,具体操作权限请参见权限列表。 管理员:工作空间管理员,拥有工作空间内所有的业务操作权限。建议将项目负责人、开发责任人、运维管理员设置为管理员角色。 开发者:开发者拥有工作空间内创建、管理工作项的业务操作权限。建议将任务开发、任务处理的用户设置为开发者。 运维者:运维者具备工作空间内运维调度等业务的操作权限,但无法更改工作项及配置。建议将运维管理、状态监控的用户设置为运维者。 访客:访客可以查看工作空间内的数据,但无法操作业务。建议将只查看空间内容、不进行操作的用户设置为访客。 部署者:企业模式独有,具备工作空间内任务包发布的相关操作权限。在企业模式中,开发者提交脚本或作业版本后,系统会对应产生发布任务。开发者确认发包后,需要部署者审批通过,才能将修改后的作业同步到生产环境。 自定义角色:如果预置角色不能满足您的需求,您也可以创建自定义角色。自定义角色的权限可自由配置,实现业务操作权限最小化。 系统角色 DataArts Studio User 普通用户,具备DataArts Studio实例及工作空间的查看权限,但不具备依赖服务权限。普通用户需要被授予依赖服务权限+任一工作空间角色后,才能拥有对应角色的业务操作权限。 依赖服务权限详见表2。 工作空间有管理员、开发者、部署者、运维者和访客五种预置角色和自定义角色,每种角色的介绍如下,具体操作权限请参见权限列表。 管理员:工作空间管理员,拥有工作空间内所有的业务操作权限。建议将项目负责人、开发责任人、运维管理员设置为管理员角色。 开发者:开发者拥有工作空间内创建、管理工作项的业务操作权限。建议将任务开发、任务处理的用户设置为开发者。 运维者:运维者具备工作空间内运维调度等业务的操作权限,但无法更改工作项及配置。建议将运维管理、状态监控的用户设置为运维者。 访客:访客可以查看工作空间内的数据,但无法操作业务。建议将只查看空间内容、不进行操作的用户设置为访客。 部署者:企业模式独有,具备工作空间内任务包发布的相关操作权限。在企业模式中,开发者提交脚本或作业版本后,系统会对应产生发布任务。开发者确认发包后,需要部署者审批通过,才能将修改后的作业同步到生产环境。 自定义角色:如果预置角色不能满足您的需求,您也可以创建自定义角色。自定义角色的权限可自由配置,实现业务操作权限最小化。 系统角色
  • ① 跨区域极简网络配置访问 跨区域网络配置访问,用于在多个全球跨区域互联的VPC内,您需要部署网络访问多个跨区域VPC实例的场景。 规划的云原生应用网络,应用使用统一的网络部署业务,基于ANC实现网络互通和隔离,无需再统一规划VPC。连接无需感知任何网络信息,应用跨账号、跨区域、跨VPC无感互联。应用灵活编排,网络配置简单,操作便捷。 图1 传统VPC网络与ANC网络配置区别 图2 配置ANC网络
  • ② VPC客户端和访问的目的地址冲突 如果VPC客户端和访问的服务端均采用IPv4地址,可能存在客户端网段和访问的服务端网段冲突,通过云原生应用网络可以解决地址冲突的问题。 如图3,客户端VPC ECS-1 IP地址为10.1.1.2,服务端ECS-2 IP地址为10.1.1.2,客户端与服务端地址冲突。 配置ANC网络后,客户端访问服务A的 域名 ,即可以通过ANC访问服务端ECS-2。 图3 通过ANC访问
  • 入门指南 服务简介 服务是一种可独立部署的软件单元,包含路由规则、成员组等组件。用户可以通过ANC,根据定义的路由规则,访问服务中的资源(成员)。 服务由成员、路由规则、健康检查(可选)等元素组成。 成员可以是云服务器实例、辅助弹性网卡或弹性负载均衡实例等。由一个或多个成员的逻辑集合组成成员组。 路由规则是服务默认组件,用于将请求转发多个成员组中的一个。每条规则由优先级和权重组成。路由规则决定由客户端请求所转发的目标成员组。 服务会定期向成员发送请求以测试其运行状态,这些测试称为健康检查。通过健康检查来判断成员是否可用。
  • 关联VPC 关联VPC是将客户端所在的VPC关联到云原生应用网络。您可以将不同区域的VPC关联至云原生应用网络。例如,将区域C的VPC-C1和区域D的VPC-D1关联至云原生应用网络。 与云原生应用网络关联的VPC客户端可以发现与云原生应用网络关联的服务,可以向与云原生应用网络关联的服务发出请求。 表4 关VPC客户端访问路径说明 客户端访问 说明 允许访问路径 客户端可以访问与客户端相同区域的服务。 客户端可以访问与客户端不同区域的服务。 客户端优先访问与客户端区域近的服务。 不允许访问路径 客户端无法向与云原生网络关联的其他VPC中的客户端发送请求。
  • 服务 服务是一种可独立部署的软件单元,接受客户端请求的服务载体。接受来自客户端的请求,根据定义的路由规则将请求转发到成员组的成员。 表2 服务说明 服务类型 说明 同区域 同一个服务可以添加相同区域的成员组。 在服务A中,添加区域A的路由规则,并添加区域A的多个成员组。 同一服务同一区域中,可添加1个路由规则。 跨区域 同一个服务可以添加不同区域的成员组。 在服务B中,添加区域A的路由规则和成员组。添加区域B的路由规则和成员组。
  • Token认证 Token的有效期为24小时,需要使用一个Token鉴权时,可以先缓存起来,避免频繁调用。 Token在计算机系统中代表令牌(临时)的意思,拥有Token就代表拥有某种权限。Token认证就是在调用API的时候将Token加到请求消息头,从而通过身份认证,获得操作API的权限。 Token可通过调用获取用户Token接口获取,调用本服务API需要project级别的Token,即调用获取用户Token接口时,请求body中auth.scope的取值需要选择project,如下所示。 { "auth": { "identity": { "methods": [ "password" ], "password": { "user": { "name": "username", "password": "********", "domain": { "name": "domainname" } } } }, "scope": { "project": { "name": "xxxxxxxx" } } } } 获取Token 后,再调用其他接口时,您需要在请求消息头中添加“X-Auth-Token”,其值即为Token。例如Token值为“ABCDEFJ....”,则调用接口时将“X-Auth-Token: ABCDEFJ....”加到请求消息头即可,如下所示。 GET https://iam.cn-north-1.myhuaweicloud.com/v3/auth/projects Content-Type: application/json X-Auth-Token: ABCDEFJ.... 您还可以通过这个视频教程了解如何使用Token认证:https://bbs.huaweicloud.com/videos/101333 。
  • AK/SK认证 AK/SK签名认证方式仅支持请求Body体大小12M以内,12M以上的请求请使用Token认证。 AK/SK认证就是使用AK/SK对请求进行签名,在请求时将签名信息添加到消息头,从而通过身份认证。 AK(Access Key ID):访问密钥ID。与私有访问密钥关联的唯一标识符;访问密钥ID和私有访问密钥一起使用,对请求进行加密签名。 SK(Secret Access Key):与访问密钥ID结合使用的密钥,对请求进行加密签名,可标识发送方,并防止请求被修改。 使用AK/SK认证时,您可以基于签名算法使用AK/SK对请求进行签名,也可以使用专门的签名SDK对请求进行签名。详细的签名方法和SDK使用方法请参见API签名指南。 签名SDK只提供签名功能,与服务提供的SDK不同,使用时请注意。
  • 解决办法 登录集群任一节点目录。 创建hss-rbac.yaml文件,并将以下内容复制并保存至hss-rbac.yaml文件中。 1 {"metadata":{"namespace":"hss","name":"hssRole"},"apiVersion":"rbac.authorization.k8s.io/v1","kind":"Role","rules":[{"resources":["configmaps"],"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":[""]},{"resources":["daemonsets","deployments","deployments/rollback","replicasets"],"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["apps"]},{"resources":["cronjobs","jobs"],"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["batch"]},{"resources":["ingresses"],"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["extensions"]},{"resources":["ingresses"],"verbs":["create","delete","deletecollection","get","list","patch","update","watch"],"apiGroups":["networking.k8s.io"]}]}{"metadata":{"namespace":"hss","name":"hssRoleBinding"},"apiVersion":"rbac.authorization.k8s.io/v1","kind":"RoleBinding","subjects":[{"kind":"ServiceAccount","name":"hss-user","namespace":"hss"}],"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"Role","name":"hssRole"}}{"metadata":{"name":"hssClusterRole"},"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRole","rules":[{"resources":["namespaces","pods","nodes","services","endpoints","configmaps","events","persistentvolumeclaims","persistentvolumes","podtemplates","replicationcontrollers","serviceaccounts","pods/log"],"verbs":["get","list"],"apiGroups":[""]},{"resources":["pods/status"],"verbs":["update"],"apiGroups":[""]},{"resources":["daemonsets","deployments","replicasets","statefulsets"],"verbs":["get","list"],"apiGroups":["apps"]},{"resources":["horizontalpodautoscalers"],"verbs":["get","list"],"apiGroups":["autoscaling"]},{"resources":["cronjobs","jobs"],"verbs":["get","list"],"apiGroups":["batch"]},{"resources":["endpointslices"],"verbs":["get","list"],"apiGroups":["discovery.k8s.io"]},{"resources":["events"],"verbs":["get","list"],"apiGroups":["events.k8s.io"]},{"resources":["ingresses"],"verbs":["get","list"],"apiGroups":["extensions"]},{"resources":["ingressclasses","ingresses","networkpolicies"],"verbs":["create","delete","update","get","list"],"apiGroups":["networking.k8s.io"]},{"resources":["clusterrolebindings","clusterroles","rolebindings","roles"],"verbs":["create","delete","deletecollection","patch","update","watch"],"apiGroups":["rbac.authorization.k8s.io"]},{"resources":["clusterrolebindings","clusterroles","rolebindings","roles"],"verbs":["get","list"],"apiGroups":["rbac.authorization.k8s.io"]},{"resources":["storageclasses","volumeattachments"],"verbs":["get","list"],"apiGroups":["storage.k8s.io"]}]}{"metadata":{"name":"hssClusterRoleBinding"},"apiVersion":"rbac.authorization.k8s.io/v1","kind":"ClusterRoleBinding","subjects":[{"kind":"ServiceAccount","name":"hss-user","namespace":"hss"}],"roleRef":{"apiGroup":"rbac.authorization.k8s.io","kind":"ClusterRole","name":"hssClusterRole"}} 执行以下命令,配置HSS所需的全量rbac权限 kubectl apply -f hss-rbac.yaml 登录HSS控制台,查看权限列表中“是否有权限”列均为“是”,表示权限恢复正常,问题解决。 详细操作请参考问题现象中查看权限列表的操作。 如果您一直停留在HSS权限列表页面,请在配置完成后刷新下页面。
  • 约束限制 仅 企业主机安全 版本为旗舰版、网页防篡改版、容器版,且Linux Agent版本≥3.2.12或Windows Agent版本≥4.0.18时,支持Agent自保护功能。 Windows系统的Agent自保护功能依赖AV检测、HIPS检测或者勒索病毒防护功能使能驱动才能生效,只有这三个功能开启一个以上时,开启Agent自保护才会生效。确认或开启这些功能的具体操作请参见: 勒索病毒防护:开启勒索病毒防护。 AV检测、HIPS检测:配置策略。 开启自保护策略后的影响如下: Windows系统 不能通过控制面板卸载Agent,支持通过企业主机安全控制台卸载Agent。 Agent安装路径C:\Program Files\HostGuard下除了log目录、data目录(如果Agent升级过,则包含upgrade目录)外的其他目录无法访问。 企业主机安全相关的进程无法被强制结束。 Linux系统 不能通过命令卸载Agent,支持通过企业主机安全控制台卸载Agent。 通过命令停止或重启企业主机安全,需要输入验证码(验证码为执行停止或重启命令后界面回显的字符)。 企业主机安全相关的进程信息将被隐藏。
  • 解决措施 在任一集群节点执行如下操作,即可卸载容器集群防护插件。 登录任一集群节点。 在/tmp目录下新建plugin.yaml文件,并将如下脚本内容拷贝至plugin.yaml文件中。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 apiVersion: v1 kind: Namespace metadata: labels: admission.gatekeeper.sh/ignore: no-self-managing control-plane: controller-manager gatekeeper.sh/system: "yes" pod-security.kubernetes.io/audit: restricted pod-security.kubernetes.io/audit-version: latest pod-security.kubernetes.io/enforce: restricted pod-security.kubernetes.io/enforce-version: v1.24 pod-security.kubernetes.io/warn: restricted pod-security.kubernetes.io/warn-version: latest name: gatekeeper-system --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: assign.mutations.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: assignimage.mutations.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: assignmetadata.mutations.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: configs.config.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: constraintpodstatuses.status.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: constrainttemplatepodstatuses.status.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 labels: gatekeeper.sh/system: "yes" name: constrainttemplates.templates.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: expansiontemplate.expansion.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: expansiontemplatepodstatuses.status.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: modifyset.mutations.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.10.0 labels: gatekeeper.sh/system: "yes" name: mutatorpodstatuses.status.gatekeeper.sh --- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.11.3 labels: gatekeeper.sh/system: "yes" name: providers.externaldata.gatekeeper.sh --- apiVersion: rbac.authorization.k8s.io/v1 kind: Role metadata: creationTimestamp: null labels: gatekeeper.sh/system: "yes" name: gatekeeper-manager-role namespace: gatekeeper-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: creationTimestamp: null labels: gatekeeper.sh/system: "yes" name: gatekeeper-manager-role --- apiVersion: rbac.authorization.k8s.io/v1 kind: RoleBinding metadata: labels: gatekeeper.sh/system: "yes" name: gatekeeper-manager-rolebinding namespace: gatekeeper-system roleRef: apiGroup: rbac.authorization.k8s.io kind: Role name: gatekeeper-manager-role subjects: - kind: ServiceAccount name: gatekeeper-admin namespace: gatekeeper-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: labels: gatekeeper.sh/system: "yes" name: gatekeeper-manager-rolebinding roleRef: apiGroup: rbac.authorization.k8s.io kind: ClusterRole name: gatekeeper-manager-role subjects: - kind: ServiceAccount name: gatekeeper-admin namespace: gatekeeper-system --- apiVersion: admissionregistration.k8s.io/v1 kind: MutatingWebhookConfiguration metadata: labels: gatekeeper.sh/system: "yes" name: gatekeeper-mutating-webhook-configuration --- apiVersion: admissionregistration.k8s.io/v1 kind: ValidatingWebhookConfiguration metadata: labels: gatekeeper.sh/system: "yes" name: gatekeeper-validating-webhook-configuration 在/tmp目录下新建uninstall.sh文件,并将如下脚本内容拷贝至uninstall.sh文件中。 1 2 3 #!/bin/bash kubectl delete -f /tmp/plugin.yaml kubectl delete ns cgs-provider 执行如下命令卸载容器集群防护插件。 bash /tmp/uninstall.sh 回显如下图类似信息,表示插件卸载完成。
  • 开启apiserver审计功能 将以下yaml内容复制并保存至yaml文件,并将yaml文件命名为“audit-policy.yaml”。 该yaml内容为K8s审计功能的配置文件,您可以直接使用或者根据实际业务情况编写。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 apiVersion: audit.k8s.io/v1 # This is required. kind: Policy # Don't generate audit events for all requests in RequestReceived stage. omitStages: - "RequestReceived" rules: # The following requests were manually identified as high-volume and low-risk, # so drop them. # Kube-Proxy running on each node will watch services and endpoint objects in real time - level: None users: ["system:kube-proxy"] verbs: ["watch"] resources: - group: "" # core resources: ["endpoints", "services"] # Some health checks - level: None users: ["kubelet"] # legacy kubelet identity verbs: ["get"] resources: - group: "" # core resources: ["nodes"] - level: None userGroups: ["system:nodes"] verbs: ["get"] resources: - group: "" # core resources: ["nodes"] - level: None users: ["system:apiserver"] verbs: ["get"] resources: - group: "" # core resources: ["namespaces"] # Some system component certificates reuse the master user, which cannot be accurately distinguished from user behavior, # considering that subsequent new functions may continue to add system operations under kube-system, the cost of targeted configuration is relatively high, # in terms of the overall strategy, it is not recommended (allowed) for users to operate under the kube-system, # so overall drop has no direct impact on user experience - level: None verbs: ["get", "update"] namespaces: ["kube-system"] # Don't log these read-only URLs. - level: None nonResourceURLs: - /healthz* - /version - /swagger* # Don't log events requests. - level: None resources: - group: "" # core resources: ["events"] # Don't log leases requests - level: None verbs: [ "get", "update" ] resources: - group: "coordination.k8s.io" resources: ["leases"] # Secrets, ConfigMaps, and TokenReviews can contain sensitive & binary data, # so only log at the Metadata level. - level: Metadata resources: - group: "" # core resources: ["secrets", "configmaps"] - group: authentication.k8s.io resources: ["tokenreviews"] # Get responses can be large; skip them. - level: Request verbs: ["get", "list", "watch"] resources: - group: "" # core - group: "admissionregistration.k8s.io" - group: "apps" - group: "authentication.k8s.io" - group: "authorization.k8s.io" - group: "autoscaling" - group: "batch" - group: "certificates.k8s.io" - group: "extensions" - group: "networking.k8s.io" - group: "policy" - group: "rbac.authorization.k8s.io" - group: "settings.k8s.io" - group: "storage.k8s.io" # Default level for known APIs - level: RequestResponse resources: - group: "" # core - group: "admissionregistration.k8s.io" - group: "apps" - group: "authentication.k8s.io" - group: "authorization.k8s.io" - group: "autoscaling" - group: "batch" - group: "certificates.k8s.io" - group: "extensions" - group: "networking.k8s.io" - group: "policy" - group: "rbac.authorization.k8s.io" - group: "settings.k8s.io" - group: "storage.k8s.io" # Default level for all other requests. - level: Metadata 将audit-policy.yaml文件上传至/etc/kubernetes/路径下。 进入/etc/kubernetes/manifests目录,将以下内容填写至配置文件kube-apiserver.yaml中,开启apiserver审计功能。 1 2 3 4 5 --audit-policy-file=/etc/kubernetes/audit-policy.yaml --audit-log-path=/var/log/kubernetes/audit/audit.log --audit-log-maxsize=100 --audit-log-maxage=1 --audit-log-maxbackup=10 --audit-policy-file:指定审计功能所使用的配置文件。 --audit-log-path:指定用来写入审计事件的日志文件路径。不指定此标志会禁用日志后端。 --audit-log-maxsize:定义审计日志文件轮转之前的最大大小(兆字节)。 --audit-log-maxage:定义保留旧审计日志文件的最大天数。 --audit-log-maxbackup:定义要保留的审计日志文件的最大数量。 将上述启动参数填写至配置文件kube-apiserver.yaml时,注意与kube-apiserver.yaml中的启动参数格式保持一致,且不能存在制表符(tab)。 (可选)如果您的kube-apiserver是以Pod形式存在,请按如下步骤将审计日志持久化到主机上。 在kube-apiserver.yaml中找到volumeMounts字段,按如下配置挂载数据卷。 1 2 3 4 5 6 7 volumeMounts: - mountPath: /etc/kubernetes/audit-policy.yaml name: audit readOnly: true - mountPath: /var/log/kubernetes/audit/ name: audit-log readOnly: false 在kube-apiserver.yaml中找到volumes字段,按如下配置挂载。 1 2 3 4 5 6 7 8 9 volumes: - name: audit hostPath: path: /etc/kubernetes/audit-policy.yaml type: File - name: audit-log hostPath: path: /var/log/kubernetes/audit/ type: DirectoryOrCreate
  • 前提条件 已开启容器防护,相关操作请参见开启容器节点防护。 已确认apiserver审计功能未开启,确认步骤如下: 登录到kube-apiserver所在的节点。 查看kube-apiserver.yaml文件或者已经启动的kube-apiserver进程。 进入/etc/kubernetes/manifest目录,查看kube-apiserver.yaml中是否存在--audit-log-path和--audit-policy-file,不存在即表示apiserver审计功能未正常开启。 执行ps命令,查看kube-apiserver的进程命令行中是否存在--audit-log-path和--audit-policy-file,不存在即表示apiserver审计功能未正常开启。
  • 计费示例 假设您在2023/04/18 9:59:30为一台主机开启了按需计费企业主机安全企业版防护,然后在2023/04/18 10:45:46关闭防护,则: 第一个计费周期为9:00:00 ~ 10:00:00,在9:59:30 ~ 10:00:00间产生费用,该计费周期内的计费时长为30秒。 第二个计费周期为10:00:00 ~ 11:00:00,在10:00:00 ~ 10:45:46间产生费用,该计费周期内的计费时长为2746秒。 您需要为每个计费周期付费,计费公式如表 计费公式所示。产品价格详情中标出了资源的每小时价格,您需要将每小时价格除以3600,得到每秒价格。 表2 计费公式 资源类型 计费公式 资源单价 防护配额(专业版、企业版、旗舰版、容器版、网页防篡改版) 防护配额单价*计费时长 请参见企业主机安全价格详情中的规格单价。 图 按需计费HSS费用计算示例给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以企业主机安全价格详情中的价格为准。 图1 按需计费企业主机安全费用计算示例
  • 计费周期 按需计费企业主机安全资源包括防护配额和增值服务,其中仅“防护配额”按照计费周期进行收费。 防护配额:按使用时长计费,精确到秒,每一个小时整点结算一次费用(以UTC+8时间为准)。 增值服务:按使用次数计费,不设独立的计费周期,每一个小时整点结算一次费用(以UTC+8时间为准)。 防护配额计费周期: 计费起点:以开启企业主机安全防护成功的时间点为准。 计费终点:以关闭企业主机安全防护的时间点为准。 例如,您在8:45:30为一台主机开启了按需计费企业主机安全企业版防护,然后在8:55:00关闭防护,则计费周期为8:00:00 ~ 9:00:00,在8:45:30 ~ 8:55:30间产生费用,该计费周期内的计费时长为600秒。
  • 变更计费模式概述 在购买企业主机安全专业版、企业版、旗舰版、容器版和网页防篡改版后,如果发现当前计费模式无法满足业务需求,您可以变更计费模式。支持变更计费模式的企业主机安全计费项如表1所示。 表1 支持变更计费模式的企业主机安全计费项 计费项 变更说明 相关文档 防护配额 企业主机安全支持变更模式的防护配额为专业版、企业版、旗舰版、容器版和网页防篡改版。 将企业主机安全专业版、企业版、旗舰版、容器版和网页防篡改版的计费模式从按需计费转为包年/包月,可以让您享受一定程度的价格优惠。 将企业主机安全专业版、企业版、旗舰版、容器版和网页防篡改版的计费模式从包年/包月转为按需计费,可以帮助您回收部分成本,并更加灵活地使用企业主机安全。 按需转包年/包月 包年/包月转按需 父主题: 变更计费模式
  • 计费说明 企业主机安全根据您购买的防护配额和使用的增值服务进行计费。具体内容如表1所示。 如您需要快速了解企业主机安全防护配额的具体价格,请参见HSS价格详情。 增值服务当前处于公测阶段,具体费用请参考开通增值服务时售卖页显示的价格。 表1 企业主机安全计费项 计费项 计费项说明 适用的计费模式 计费公式 防护配额 按类型进行计费。 包年/包月防护配额:基础版、专业版、企业版、旗舰版、容器版、网页防篡改版 按需计费防护配额:专业版、企业版、旗舰版、容器版、网页防篡改版 包年/包月、按需计费 防护配额*购买时长 防护配额单价请参见企业主机安全价格详情中的规格单价。 病毒查杀按次收费 如您有主机或容器节点未开启任何版本的企业主机安全防护或开启了基础版企业主机安全防护,需要单独或额外使用病毒查杀功能,可开通病毒查杀按次收费增值服务。 病毒查杀按次收费服务按照扫描每台主机成功的次数进行收费。 开启病毒查杀按次收费服务后,您每月首次登录病毒查杀界面,可获得免费扫描次数2次。 按需计费 病毒查杀按次收费单价*扫描成功次数*主机数量 病毒查杀按次收费功能当前处于公测阶段,单价请以售卖页显示的价格为准。 容器镜像扫描按次收费 如有仓库镜像、CI/CD镜像安全扫描需求,您需要单独开通容器镜像扫描按次收费服务。该服务不受企业主机安全版本限制,任意版本均可开通使用。 容器镜像扫描按次收费服务按照扫描每个仓库镜像或CI/CD镜像成功的次数进行收费,按月累计扫描次数,阶梯计费(当月累计超万次可享优惠)。 开通容器镜像扫描按次收费后,您每月首次登录容器镜像安全界面,可获得免费扫描次数10次。 按需计费 容器镜像扫描按次收费单价*扫描成功次数*镜像数量 容器镜像扫描按次收费功能当前处于公测阶段,单价请以售卖页显示的价格为准。 在使用企业主机安全过程中,可能还会涉及一些高级配置的费用,如云备份。具体如表2所示。 表2 高级配置计费项 计费项 计费项说明 云备份 如果您有勒索病毒防护的需求,需要购买备份存储库,用来存放服务器产生的备份副本。 按照存储库容量计费,详细计费信息请参见云备份价格详情。
  • 计费示例 假设您在2023/03/08 15:50:04购买了一个包年/包月企业主机安全旗舰版。购买时长为一个月,并在到期前手动续费1个月,则: 第一个计费周期为:2023/03/08 15:50:04 ~ 2023/04/08 23:59:59 第二个计费周期为:2023/04/08 23:59:59 ~ 2023/05/08 23:59:59 图 包年/包月HSS费用计算示例给出了上述示例配置的费用计算过程。 图中价格仅供参考,实际计算请以企业主机安全价格详情中的价格为准。 图1 包年/包月企业主机安全费用计算示例 按需计费模式下,各计费项的计费示例请参见计费示例。
  • 按需计费资源 对于按需计费模式的资源,例如按需计费的企业主机安全专业版、企业版、旗舰版、容器版和网页防篡改版,若不再使用这些资源且需停止计费,请关闭相应版本的主机、容器防护。 按需计费资源删除后,可能还会存在账单信息,因为系统通常会在使用后1个小时内对上一个结算周期的费用进行扣款。例如在8:30关闭按小时结算的主机、容器防护,但是8:00~9:00期间产生的费用,通常会在10:00左右才进行扣费。
  • HSS计费模式概述 企业主机安全提供包年/包月、按需计费两种计费模式,以满足不同场景下的用户需求。如您需要快速了解企业主机安全不同计费模式的具体价格,请参见HSS价格详情。 包年/包月:一种预付费模式,即先付费再使用,按照订单的购买周期进行结算。购买周期越长,享受的折扣越大。 按需计费:一种后付费模式,即先使用再付费,按照企业主机安全资源的使用量计费。按需计费模式允许您根据实际业务需求灵活地调整资源使用,无需提前预置资源,从而降低预置过多或不足的风险。 表1列出了两种计费模式的区别。 表1 计费模式 计费模式 包年/包月 按需计费 付费方式 预付费 按照订单的购买周期结算。 后付费 按照使用量计费。 适用计费项 防护配额:基础版、专业版、企业版、旗舰版、网页防篡改版和容器版。 防护配额:专业版、企业版、旗舰版、网页防篡改版和容器版。 增值服务:病毒查杀按次扫描、容器镜像扫描按次收费。 计费周期 按订单的购买周期计费。 防护配额:秒级计费,按小时结算。 增值服务:无计费周期,按使用次数计费。 关闭防护是否计费 按订单的购买周期计费。主机、容器关闭防护对包年/包月计费无影响。 防护配额:关闭防护后不计费。 增值服务:计费与是否启停企业主机安全防护无关。 是否支持变更计费模式 支持变更为“按需计费”模式。 详细请参见包年/包月转按需。 防护配额支持变更为“包年/包月”计费模式。 详细请参见按需转包年/包月。 升级规格 基础版、专业版、企业版支持升级规格。 不支持升级规格。 适用场景 适用于可预估资源使用周期的场景,价格比按需计费模式更优惠。对于长期使用者,推荐该方式。 适用于主机、容器防护需求波动的场景,可以随时开通,随时删除。 父主题: 计费模式
  • 服务 服务是一种可独立部署的软件单元,接受客户端请求的服务载体。接受来自客户端的请求,根据定义的路由规则将请求转发到成员组的成员。 表2 服务说明 服务类型 说明 同区域 同一个服务可以添加相同区域的成员组。 在服务A中,添加区域A的路由规则,并添加区域A的多个成员组。 同一服务同一区域中,可添加1个路由规则。 跨区域 同一个服务可以添加不同区域的成员组。 在服务B中,添加区域A的路由规则和成员组。添加区域B的路由规则和成员组。
  • 关联VPC 关联VPC是将客户端所在的VPC关联到云原生应用网络。您可以将不同区域的VPC关联至云原生应用网络。例如,将区域C的VPC-C1和区域D的VPC-D1关联至云原生应用网络。 与云原生应用网络关联的VPC客户端可以发现与云原生应用网络关联的服务,可以向与云原生应用网络关联的服务发出请求。 表4 关VPC客户端访问路径说明 客户端访问 说明 允许访问路径 客户端可以访问与客户端相同区域的服务。 客户端可以访问与客户端不同区域的服务。 客户端优先访问与客户端区域近的服务。 不允许访问路径 客户端无法向与云原生网络关联的其他VPC中的客户端发送请求。
  • ① 跨区域极简网络配置访问 跨区域网络配置访问,用于在多个全球跨区域互联的VPC内,您需要部署网络访问多个跨区域VPC实例的场景。 规划的云原生应用网络,应用使用统一的网络部署业务,基于ANC实现网络互通和隔离,无需再统一规划VPC。连接无需感知任何网络信息,应用跨账号、跨区域、跨VPC无感互联。应用灵活编排,网络配置简单,操作便捷。 图1 传统VPC网络与ANC网络配置区别 图2 配置ANC网络
  • ② VPC客户端和访问的目的地址冲突 如果VPC客户端和访问的服务端均采用IPv4地址,可能存在客户端网段和访问的服务端网段冲突,通过云原生应用网络可以解决地址冲突的问题。 如图3,客户端VPC ECS-1 IP地址为10.1.1.2,服务端ECS-2 IP地址为10.1.1.2,客户端与服务端地址冲突。 配置ANC网络后,客户端访问服务A的域名,即可以通过ANC访问服务端ECS-2。 图3 通过ANC访问
  • 入门指南 服务简介 服务是一种可独立部署的软件单元,包含路由规则、成员组等组件。用户可以通过ANC,根据定义的路由规则,访问服务中的资源(成员)。 服务由成员、路由规则、健康检查(可选)等元素组成。 成员可以是云服务器实例、辅助弹性网卡或弹性负载均衡实例等。由一个或多个成员的逻辑集合组成成员组。 路由规则是服务默认组件,用于将请求转发多个成员组中的一个。每条规则由优先级和权重组成。路由规则决定由客户端请求所转发的目标成员组。 服务会定期向成员发送请求以测试其运行状态,这些测试称为健康检查。通过健康检查来判断成员是否可用。
  • 响应示例 状态码:200 OK { "status" : "success", "result" : { "dns" : [ { "ips" : [ "128.0.0.0" ], "domain_name" : "www.example.com" } ] }, "reason" : null, "error" : null, "code" : null, "costTimeResult" : null }
  • 请求参数 表2 请求Header参数 参数 是否必选 参数类型 描述 X-Auth-Token 是 String 参数解释 用户Token。通过调用IAM服务获取用户Token接口获取(响应消息头中X-Subject-Token的值) 约束限制 不涉及 取值范围 字符串长度不少于1,不超过100000 默认取值 不涉及 表3 请求Body参数 参数 是否必选 参数类型 描述 dns 否 Array of DnsMappingNode objects 参数解释 DNS配置结果集 表4 DnsMappingNode 参数 是否必选 参数类型 描述 domain_name 否 String 参数解释 域名信息 ips 否 Array of strings 参数解释 域名对应的IP
  • 响应参数 状态码:200 表5 响应Body参数 参数 参数类型 描述 error CommonResponseErrorOfAPITest object 错误详情 reason String 参数解释 错误原因 result DnsMapping object DNS配置结果集 status String 参数解释 状态值,如success、error code String 参数解释 错误码 costTimeResult String 参数解释 提交耗时 表6 CommonResponseErrorOfAPITest 参数 参数类型 描述 code String 参数解释 接口调用失败错误码 reason String 参数解释 接口调用失败原因 表7 DnsMapping 参数 参数类型 描述 dns Array of DnsMappingNode objects 参数解释 DNS配置结果集 表8 DnsMappingNode 参数 参数类型 描述 domain_name String 参数解释 域名信息 ips Array of strings 参数解释 域名对应的IP 状态码:201 Created 状态码:401 Unauthorized 状态码:403 Forbidden 状态码:404 Not Found
共100000条
提示

您即将访问非华为云网站,请注意账号财产安全