云消息队列 Kafka 版的控制台和API的权限管理通过访问控制RAM(Resource Access Management)实现。RAM可以让您避免与其他用户共享阿里云云账号密钥,即AccessKey(包含AccessKey ID和AccessKey Secret),按需为其他用户分配最小权限。

RAM权限策略

在RAM中,权限策略是用语法结构描述的一组权限的集合,可以精确地描述被授权的资源集、操作集以及授权条件。权限策略是描述权限集的一种简单语言规范,RAM支持的语言规范请参见权限策略语法和结构

在RAM中,权限策略是一种资源实体。云消息队列 Kafka 版支持以下两种类型的权限策略:

  • 系统权限策略:统一由阿里云创建,您只能使用不能修改,策略的版本更新由阿里云维护,适用于粗粒度地控制RAM用户权限。
  • 自定义权限策略:您可以自主创建、更新和删除,策略的版本更新由您自己维护,适用于细粒度地控制RAM用户权限。

系统权限策略

云消息队列 Kafka 版支持以下系统权限策略。

权限策略名称说明
AliyunKafkaFullAccess云消息队列 Kafka 版的管理权限,被授予该权限的RAM用户具有等同于阿里云账号的权限,即控制台和API的所有操作权限。
AliyunKafkaReadOnlyAccess云消息队列 Kafka 版的只读权限,被授予该权限的RAM用户只具有阿里云账号所有资源的只读权限,不具有控制台和API的操作权限。

系统权限策略示例

以系统权限策略AliyunKafkaFullAccess为例,被授予该权限的RAM用户具有等同于阿里云账号的权限,即控制台和API的所有操作权限。策略内容如下:

{
    "Version": "1",
    "Statement": [
        {
            "Action": "alikafka:*",
            "Resource": "*",
            "Effect": "Allow"
        },
        {
            "Action": "ram:CreateServiceLinkedRole",
            "Resource": "*",
            "Effect": "Allow",
            "Condition": {
                "StringEquals": {
                    "ram:ServiceName": [
                        "connector.alikafka.aliyuncs.com",
                        "instanceencryption.alikafka.aliyuncs.com",
                        "alikafka.aliyuncs.com",
                        "etl.alikafka.aliyuncs.com"
                    ]
                }
            }
        }
    ]
}

自定义权限策略

云消息队列 Kafka 版支持以下自定义权限策略。

Action名称权限说明是否为只读类权限
ReadOnly只读所有资源
ListInstance查看实例
StartInstance部署实例
UpdateInstance更新实例配置
ReleaseInstance释放实例
ListTopic查看Topic
CreateTopic创建Topic
UpdateTopic更新Topic配置
DeleteTopic删除Topic
ListGroup查看Group
CreateGroup创建Group
UpdateGroup更新Group配置
DeleteGroup删除Group
QueryMessage查询消息
SendMessage发送消息
DownloadMessage下载消息
CreateMessageSearch开通消息检索
OperateMessageSearch启停消息检索
ListMessageSearch查看消息检索
DeleteMessageSearch删除消息检索任务
CreateDeployment
  • 创建FC Sink Connector任务
  • 创建MaxCompute Sink Connector任务
  • 创建OSS Sink Connector任务
  • 创建Elasticsearch Sink Connector任务
  • 创建MySQL Source Connector任务
  • 创建DLA Sink Connector任务
DeleteDeployment
  • 删除FC Sink Connector任务
  • 删除MaxCompute Sink Connector任务
  • 删除OSS Sink Connector任务
  • 删除Elasticsearch Sink Connector任务
  • 删除MySQL Source Connector任务
  • 删除DLA Sink Connector任务
ListDeployments查看Connector任务
UpdateDeploymentRemark修改Connector任务说明
GetDeploymentLog获取Connector任务运行日志
OperateDeployment启停Connector任务
CreateOtsSinkDeployment创建Tablestore Sink Connector任务
OperateOtsSinkDeployment启停Tablestore Sink Connector任务
DeleteOtsSinkDeployment删除Tablestore Sink Connector任务
CreateAdbSinkDeployment创建AnalyticDB Sink Connector任务
OperateAdbSinkDeployment启停AnalyticDB Sink Connector任务
DeleteAdbSinkDeployment删除AnalyticDB Sink Connector任务
EnableAcl开启ACL
CreateAcl创建ACL
DeleteAcl删除ACL
ListAcl查询ACL
CreateSaslUser创建SASL用户
DeleteSaslUser删除SASL用户
ListSaslUser查询SASL用户
CreateETLTask创建数据处理任务
ListETLTask查询数据处理任务
DeleteETLTask删除数据处理任务

自定义权限策略示例

以自己创建的自定义权限策略AliyunKafkaCustomAccess为例,被授予该权限策略的RAM用户只具有实例alikafka_post-cn-xxx的查看实例、查看Topic、查看Group、查询消息和下载消息的控制台和API的权限。策略内容如下:

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
              "alikafka:ListInstance",
              "alikafka:ListTopic",
              "alikafka:ListGroup",
              "alikafka:QueryMessage",
              "alikafka:DownloadMessage"
                       ],
            "Resource": "acs:alikafka:*:*:alikafka_post-cn-xxx",
            "Effect": "Allow"
        }
    ]
}