如果系统预置的DMS for Kafka权限,不满足您的授权要求,可以创建自定义策略。自 定义策略中可以添加的授权项(Action)请参考细粒度策略支持的授权项。
目前华为云支持以下两种方式创建自定义策略:
● 可视化视图创建自定义策略:无需了解策略语法,按可视化视图导航栏选择云服 务、操作、资源、条件等策略内容,可自动生成策略。
● JSON视图创建自定义策略:可以在选择策略模板后,根据具体需求编辑策略内 容;也可以直接在编辑框内编写JSON格式的策略内容。
具体创建步骤请参见:创建自定义策略。本章为您介绍常用的DMS for Kafka自定义策 略样例。
说明
● DMS for Kafka的权限与策略基于分布式消息服务DMS,因此在IAM服务中为DMS for Kafka 分配用户与权限时,请选择并使用“DMS”的权限与策略。
● 由于缓存的存在,对用户、用户组以及企业项目授予OBS相关的细粒度策略后,大概需要等 待5分钟细粒度策略才能生效。
DMS 自定义策略样例
● 示例1:授权用户删除实例和重启实例
{ "Version": "1.1", "Statement": [ {
"Effect": "Allow", "Action": [ "
dms:instance:delete dms:instance:modifyStatus "
] } ] }
● 示例2:拒绝用户删除实例
拒绝策略需要同时配合其他策略使用,否则没有实际作用。用户被授予的策略 中,一个授权项的作用如果同时存在Allow和Deny,则遵循Deny优先。
如果您给用户授予DMS FullAccess的系统策略,但不希望用户拥有DMS
FullAccess中定义的删除实例权限,您可以创建一条拒绝删除实例的自定义策略,
然后同时将DMS FullAccess和拒绝策略授予用户,根据Deny优先原则,则用户可 以对DMS for Kafka执行除了删除实例外的所有操作。拒绝策略示例如下:
{ "Version": "1.1", "Statement": [ {
"Effect": "Deny", "Action": [
"dms:instance:delete"
] } ] }
2 准备实例依赖资源
概述
在创建Kafka实例前,您需要提前准备相关依赖资源,包括虚拟私有云(Virtual Private Cloud,以下简称VPC)、子网和安全组,并配置安全组策略。每个Kafka实例 都部署在某个VPC中,并绑定具体的子网和安全组,通过这样的方式为Kafka提供一个 隔离的、用户自主配置和管理的虚拟网络环境以及安全保护策略,提升实例的安全 性。
准备依赖资源
Kafka实例所需资源的具体要求和创建指导如表2-1所示。
表2-1 Kafka 实例依赖资源
准备资源 要求 创建指导
VPC和子网 不同的Kafka实例可以重复使用相 同的VPC和子网,也可以使用不同 的VPC和子网,请根据实际需要进 行配置。在创建VPC和子网时应注 意如下要求:
● 创建的VPC与使用的Kafka服务 应在相同的区域。
● 创建VPC和子网时,如无特殊需 求,配置参数使用默认配置即 可。
● 建议子网不要开启IPv6功能,
Kafka实例使用开启IPv6的子网 后,无法开启公网访问。
创建VPC和子网的操作指导请参 考创建虚拟私有云和子网,若需 要在已有VPC上创建和使用新的 子网,请参考为虚拟私有云创建 新的子网。
准备资源 要求 创建指导 安全组 不同的Kafka实例可以重复使用相
同的安全组,也可以使用不同的安 全组,请根据实际需要进行配置。
在创建安全组时应注意如下要求:
● 创建安全组时,“模板”选择
“自定义”。
● 创建安全组后,请保留系统默认 添加的入方向“允许安全组内的 弹性云服务器彼此通信”规则和 出方向“放通全部流量”规则。
● 使用Kafka服务必须添加表2-2所 示安全组规则,其他规则请根据 实际需要添加。
创建安全组的操作指导请参考创 建安全组,为安全组添加规则的 操作指导请参考添加安全组规 则。
表2-2 安全组规则
方向 协议 端口 源地址 说明
入方向 TCP 9094 0.0.0.0/0 通过公网访问Kafka(关闭SSL 加密)。
入方向 TCP 9092 0.0.0.0/0 通过VPC内网访问Kafka(关闭 SSL加密)。
入方向 TCP 9095 0.0.0.0/0 通过公网访问Kafka(开启SSL 加密)。
入方向 TCP 9093 0.0.0.0/0 通过VPC内网访问Kafka(开启 SSL加密)。
入方向 TCP 9999 0.0.0.0/0 访问Kafka Manager。
3 购买实例
操作场景
目前,DMS提供Kafka实例的服务,Kafka实例采用物理隔离的方式部署,租户独占 Kafka实例。支持用户自定义规格和自定义特性,您可以根据业务需要定制相应计算能 力和存储空间的Kafka实例。
购买前须知
● Kafka实例运行于虚拟私有云,购买实例前,需保证有可用的虚拟私有云,并且已 配置好安全组与子网。
● 实例不同规格的节点数和底层资源相关。由于不同Region,底层资源不一样,实 例创建后,实例节点数也会不一样。
操作步骤
步骤1 登录管理控制台。
步骤2 在管理控制台左上角单击 ,选择区域。
说明
此处请选择与您的应用服务相同的区域。
步骤3 在管理控制台左上角单击 ,选择“应用中间件 > 分布式消息服务Kafka版”,进入 分布式消息服务Kafka专享版页面。
步骤4 单击页面右上方的“购买Kafka实例”。
每个项目默认最多可以创建100个Kafka实例,如果您想创建更多实例,请联系客服申 请增加配额。
步骤5 选择“计费模式”、“区域”、“项目”和“可用区”。
步骤6 设置“实例名称”和“企业项目”。
步骤7 设置实例信息。
1. 版本:Kafka的版本号,当前支持1.1.0和2.3.0,根据实际情况选择,推荐使用 2.3.0。
2. CPU架构:当前仅支持“x86计算”,保持默认值即可。
3. 当前控制台存在2种规格,具体如下:
– 在除华东-上海一、华东-上海二、华北-北京四和华南-广州以外的区域,在
“规格”中,请根据业务流量选择带宽。
选择基准带宽时,可以查看此带宽对应的底层ECS数量和规格、分区上限、以 及建议的消费组数量。
分区上限指Kafka实例可创建的最大分区总数。当所有Topic的总分区数大于 此值时,创建Topic失败。
– 在华东-上海一、华东-上海二、华北-北京四和华南-广州区域,在“规格”
中,请根据业务需求选择相应的代理规格。在“代理个数”中,选择代理个 数。
单个代理最大分区数*代理个数=实例分区数上限。当所有Topic的总分区数大 于实例分区数上限时,创建Topic失败。
4. 在“存储空间”区域,您根据实际需要选择存储Kafka数据的总磁盘大小。
存储空间包含所有副本存储空间总和,建议根据业务消息体积以及副本数量选择 存储空间大小。假设业务存储数据保留天数内磁盘大小为100GB,则磁盘容量最 少为100GB*副本数 + 预留磁盘大小100GB。
创建实例时会进行磁盘格式化,磁盘格式化会导致实际可用磁盘为总磁盘的 93%~95%。
– 基准带宽为100MB/s时,存储空间取值范围:600GB ~ 90000GB。
– 基准带宽为300MB/s时,存储空间取值范围:1200GB ~ 90000GB。
– 基准带宽为600MB/s时,存储空间取值范围:2400GB ~ 90000GB。
– 基准带宽为1200MB/s时,存储空间取值范围:4800GB ~ 90000GB。
说明
– 高IO + 100MB/s带宽:假设平均每条消息1KB,则高吞吐场景可达10万条/秒,同步复 制场景可达6万条/秒。
– 高IO + 300MB/s带宽 : 假设平均每条消息1KB,则高吞吐场景下可达30万条/秒,同步 复制场景可达15万条/秒。
– 超高IO + 100MB/s带宽:假设平均每条消息1KB,则高吞吐场景可达10万条/秒,同步 复制场景可达8万条/秒。
– 超高IO + 300MB/s带宽:假设平均每条消息1KB,则高吞吐场景可达30万条/秒,同步 复制场景可达20万条/秒。
– 超高IO + 600MB/s带宽:假设平均每条消息1KB,则高吞吐场景可达60万条/秒,同步 复制场景可达30万条/秒。
– 超高IO + 1200MB/s带宽:假设平均每条消息1KB,则高吞吐场景可达120万条/秒,同 步复制场景可达40万条/秒。
虚拟私有云可以为您的Kafka实例构建隔离的、能自主配置和管理的虚拟网络环 境。
说明
– 建议选择未开启IPv6的子网,Kafka实例使用开启IPv6的子网后,无法开启公网访问。
– 虚拟私有云和子网在Kafka实例创建完成后,不支持修改。
7. 在“安全组”下拉列表,可以选择已经创建好的安全组。
安全组是一组对弹性云服务器的访问规则的集合,为同一个VPC内具有相同安全 保护需求并相互信任的弹性云服务器提供访问策略。
您可以单击右侧的“管理安全组”,跳转到网络控制台的“安全组”页面,查看 或创建安全组。
图3-1 购买 Kafka 实例
步骤8 设置登录Kafka Manager的用户名和密码。
Kafka Manager是开源的kafka集群管理工具,实例创建成功后,实例详情页面会展示 Kafka Manager登录地址,您可登录Kafka Manager页面,查看Kafka集群的监控、代 理等信息。
步骤9 设置实例购买时长。
当选择了“包年/包月”付费模式时,页面才显示“购买时长”参数,您需要根据业务 需要选择。
步骤10 单击“更多配置”,设置更多相关信息。
1. 设置“公网访问”。
“公网访问”默认为关闭状态,您可以选择是否开启。
开启公网访问后,还需要为每个代理设置对应的IPv4弹性IP地址。
说明
公网访问支持的区域如下:华北-北京一、华北-北京四、华北-乌兰察布一、华东-上海一、
华东-上海二和华南-广州。
2. 选择是否开启转储。
通过开启转储将数据转储至OBS桶,实现数据的备份。
说明
– 消息包含消息属性(由属性名及属性值组成,以K-V的形式体现)时,属性名key不支 持转储,属性值value支持转储。
– 开启转储后,暂不支持关闭转储。
3. 设置“Kafka SASL_SSL”。
客户端连接Kafka实例时,是否开启SSL认证。开启Kafka SASL_SSL,则数据加密 传输,安全性更高。
创建实例后,Kafka SASL_SSL开关不支持修改,请慎重选择。如果创建后需要修 改,需要重新创建实例。
开启Kafka SASL_SSL后,您需要设置连接Kafka实例的用户名和密码。
4. 设置“Kafka自动创建Topic”。
选择开启“Kafka自动创建Topic”,表示生产或消费一个未创建的Topic时,会自 动创建一个包含3个分区和3个副本的Topic。
5. 设置“标签”。
标签用于标识云资源,当您拥有相同类型的许多云资源时,可以使用标签按各种 维度(例如用途、所有者或环境)对云资源进行分类。
– 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标 签键值对。另外,您可以单击“查看预定义标签”,跳转到标签管理服务页 面,查看已经预定义的标签,或者创建新的标签。
– 如果您已经预定义了标签,在“标签键”和“标签值”中选择已经定义的标 签键值对。另外,您可以单击“查看预定义标签”,跳转到标签管理服务页 面,查看已经预定义的标签,或者创建新的标签。