云服务器内容精选

  • 响应参数 状态码: 200 表4 响应Body参数 参数 参数类型 描述 existing_agencies Array of AgenciesInfo objects 委托信息 表5 AgenciesInfo 参数 参数类型 描述 name String 名称 permissions Array of AgenciesPermissionInfo objects 委托权限信息 表6 AgenciesPermissionInfo 参数 参数类型 描述 system_permission_display_names Array of strings 委托权限项 wanted_system_permission_display_names Array of strings 需要委托的权限项 状态码: 400 表7 响应Body参数 参数 参数类型 描述 error_code String 错误码,失败时返回。 error_msg String 错误描述。 encoded_authorization_message String 加密后的详细拒绝原因,用户可以自行调用STS服务的decode-authorization-message接口进行解密。 状态码: 404 表8 响应Body参数 参数 参数类型 描述 error_code String 错误码,失败时返回。 error_msg String 错误描述。 encoded_authorization_message String 加密后的详细拒绝原因,用户可以自行调用STS服务的decode-authorization-message接口进行解密。 状态码: 500 表9 响应Body参数 参数 参数类型 描述 error_code String 错误码,失败时返回。 error_msg String 错误描述。 encoded_authorization_message String 加密后的详细拒绝原因,用户可以自行调用STS服务的decode-authorization-message接口进行解密。 状态码: default 表10 响应Body参数 参数 参数类型 描述 error_code String 错误码,失败时返回。 error_msg String 错误描述。 encoded_authorization_message String 加密后的详细拒绝原因,用户可以自行调用STS服务的decode-authorization-message接口进行解密。
  • 典型场景 DLI 委托权限配置示例 表1 DLI委托权限配置场景开发指南 类型 操作指导 说明 FLink作业场景 Flink Opensource SQL使用DEW管理访问凭据 Flink Opensource SQL场景使用DEW管理和访问凭据的操作指导,将Flink作业的输出数据写入到Mysql或DWS时,在connector中设置账号、密码等属性。 Flink Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Flink作业委托临时凭证 DLI提供了一个通用接口,可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 本操作介绍获取Flink作业委托临时凭证的操作方法。 Spark作业场景 Spark Jar 使用DEW获取访问凭证读写OBS 访问OBS的AKSK为例介绍Spark Jar使用DEW获取访问凭证读写OBS的操作指导。 用户获取Spark作业委托临时凭证 本操作介绍获取Spark Jar作业委托临时凭证的操作方法。 父主题: 配置DLI访问其他云服务的委托权限
  • 约束限制 仅支持Spark3.3.1版本(Spark通用队列场景)使用委托授权访问临时凭证: 在创建作业时,请配置作业使用Spark3.3.1版本 已在作业中配置允许DLI访问DEW的委托信息。spark.dli.job.agency.name=自定义委托名称。 自定义委托请参考自定义DLI委托权限。 请注意配置参数不需要用"" 或 '' 包裹。 Spark3.3.1基础镜像内置了3.1.62版本的huaweicloud-sdk-core。
  • 功能描述 DLI提供了一个通用接口,可用于获取用户在启动Spark作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 获取到的委托的临时认证封装到com.huaweicloud.sdk.core.auth.ICredentialProvider接口的getCredentials()返回值中。 返回类型为com.huaweicloud.sdk.core.auth.BasicCredentials。 仅支持获取AK、SK、SecurityToken。 获取到AK、SK、SecurityToken后,请参考如何使用凭据管理服务替换硬编码的数据库账号密码查询凭据。
  • 语法格式 在Flink jar作业编辑界面,选择配置优化参数,配置信息如下: 不同的OBS桶,使用不同的AKSK认证信息。 可以使用如下配置方式,根据桶指定不同的AKSK信息,参数说明详见表1。 flink.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.access.key=USER_AK_ CS MS_KEY flink.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.secret.key=USER_SK_C SMS _KEY flink.hadoop.fs.obs.security.provider=com.dli.provider.UserObsBasicCredentialProvider flink.hadoop.fs.dew.csms.secretName=CredentialName flink.hadoop.fs.dew.endpoint=ENDPOINT flink.hadoop.fs.dew.csms.version=VERSION_ID flink.hadoop.fs.dew.csms.cache.time.second=CACHE_TIME flink.dli.job.agency.name=USER_AGENCY_NAME
  • 操作场景 DLI将Flink Jar作业的输出数据写入到OBS时,需要配置AKSK访问OBS,为了确保AKSK数据安全,您可以用过 数据加密 服务(Data Encryption Workshop,DEW)、云凭据管理服务(Cloud Secret Management Service,CSMS),对AKSK统一管理,有效避免程序硬编码或明文配置等问题导致的敏感信息泄露以及权限失控带来的业务风险。 本例以获取访问OBS的AKSK为例介绍Flink Jar使用DEW获取访问凭证读写OBS的操作指导。
  • 参数说明 表1 参数说明 参数 是否必选 默认值 数据类型 参数说明 flink.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.access.key 是 无 String USER_BUCKET_NAME为用户的桶名,需要进行替换为用户的使用的OBS桶名。 参数的值为用户定义在CSMS通用凭证中的键key, 其Key对应的value为用户的AK(Access Key Id),需要具备访问OBS对应桶的权限。 flink.hadoop.fs.obs.bucket.USER_BUCKET_NAME.dew.secret.key 是 无 String USER_BUCKET_NAME为用户的桶名,需要进行替换为用户的使用的OBS桶名。 参数的值为用户定义在CSMS通用凭证中的键key, 其Key对应的value为用户的SK(Secret Access Key),需要具备访问OBS对应桶的权限。 flink.hadoop.fs.obs.security.provider 是 无 String OBS AKSK认证机制,使用DEW服务中的CSMS凭证管理,获取OBS的AK、SK。 默认取值为com.dli.provider.UserObsBasicCredentialProvider flink.hadoop.fs.dew.endpoint 是 无 String 指定要使用的DEW服务所在的endpoint信息。 获取地区和终端节点。 配置示例:flink.hadoop.fs.dew.endpoint=kms.cn-xxxx.myhuaweicloud.com flink.hadoop.fs.dew.projectId 否 有 String DEW所在的项目ID, 默认是Flink作业所在的项目ID。 获取项目ID flink.hadoop.fs.dew.csms.secretName 是 无 String 在DEW服务的凭据管理中新建的通用凭据的名称。 配置示例:flink.hadoop.fs.dew.csms.secretName=secretInfo flink.hadoop.fs.dew.csms.version 否 最新的version String 在DEW服务的凭据管理中新建的通用凭据的版本号(凭据的版本标识符)。 若不指定,则默认获取该通用凭证的最新版本号。 配置示例:flink.hadoop.fs.dew.csms.version=v1 flink.hadoop.fs.dew.csms.cache.time.second 否 3600 Long Flink作业访问获取CSMS通用凭证后,缓存的时间。 单位为秒。默认值为3600秒。 flink.dli.job.agency.name 是 - String 自定义委托名称。
  • 前提条件 已在DEW服务创建通用凭证,并存入凭据值。具体操作请参考:创建通用凭据。 已创建DLI访问DEW的委托并完成委托授权。该委托需具备以下权限: DEW中的查询凭据的版本与凭据值ShowSecretVersion接口权限,csms:secretVersion:get。 DEW中的查询凭据的版本列表ListSecretVersions接口权限,csms:secretVersion:list。 DEW解密凭据的权限,kms:dek:decrypt。 委托权限示例请参考自定义DLI委托权限和常见场景的委托权限策略。 仅支持Flink1.15版本使用DEW管理访问凭据,在创建作业时,请配置作业使用Flink1.15版本、且已在作业中配置允许DLI访问DEW的委托信息。自定义委托及配置请参考自定义DLI委托权限。 使用该功能,所有涉及OBS的桶,都需要进行配置AKSK。
  • 获取ROMA Connect委托授权 下面以华为云上的ROMA Connect举例说明。具体的项目请以实际环境为准进行获取。 登录访问ROMA Connect的管理控制台,例如https://console.huaweicloud.com/iam/?region=cn-north-4&locale=zh-cn#/iam/agencies。 单击界面右上角的“创建委托”。 填写委托相关信息。 委托名称请根据需要自行填写。委托类型请选“普通”,委托账号必须是与运营管理员在运营管理台配置的“平台租户名”一致。持续时间根据需要选择。 委托的账号必须是主账号,不能是子账号。
  • 获取ROMA Connect的授权地址和业务地址 ROMA Connect侧,授权地址也称租户面 IAM 域名,业务地址也称ROMA外部API网关 域名 。相关的地址请联系ROMA Connect侧的技术工程师获取。 两个地址的获取方式示例如下,此处仅是参考,请联系ROMA Connect侧的技术工程师以实际环境获取为准。 租户面IAM域名:需要先知道绑定的账号所对应的Region,查看IAM页面的终端节点表,Region所对应的终端节点就是租户面IAM域名。 ROMA外部API网关域名:需要先知道绑定的账号所对应的Region,查看API页面的终端节点表,Region所对应的终端节点就是ROMA外部API网关域名。
  • 下面以华为云上的ROMA Connect举例说明。 登录访问ROMA Connect的管理控制台,例如https://console.huaweicloud.com/iam/?region=cn-north-4&locale=zh-cn#/iam/agencies。 选择左侧菜单里的“委托”。 单击界面右上角的“创建委托”。 填写委托相关信息。然后单击下一步。 委托名称请根据需要自行填写。委托类型请选“普通”,委托的账号就是运营管理员在运营管理台配置的“平台租户名”。持续时间根据需要选择。 委托的账号必须是主账号,不能是子账号。 资产发布者和资产订阅者创建ROMA Connect授权委托时,使用的委托账号必须与运营管理员配置的平台租户是同一个ROMA Connect上的同一个用户,运营管理员配置的平台租户会在资产发布者进行来源授权的界面上进行提示,请看"委托账号"对应的值。 资产发布者和资产订阅者创建ROMA Connect授权委托时指定的区域必须与运营管理员配置的区域是同一个区域,如果创建委托不清楚具体区域,请在“授权”里选择“所有资源(包括未来在所有区域下创建的项目)”。 选择作用范围和拥有的权限。 作用范围请根据实际需要填写,权限请选择“ROMA FullAccess”。
  • 创建存算分离集群 配置存算分离支持在新建集群中配置委托实现,也可以通过为已有集群绑定委托实现。本示例以开启Kerberos认证的集群为例介绍。 新创建存算分离集群: 进入购买 MRS 集群页面。 单击“购买集群”,进入“购买集群”页面。 在购买集群页面,选择“自定义购买”页签。 在“自定义购买”页签,配置以下参数。 基础配置: 计费模式:选择“按需计费”。 区域:请根据需要选择区域。 集群配置: 集群名称:可以设置为系统默认名称,但为了区分和记忆,建议带上项目拼音缩写或者日期等。 集群类型:选择“自定义”。 版本类型:选择“LTS版”或“普通版”。 集群版本:请根据实际需求选择集群版本,例如:MRS 3.2.0-LTS.1。 组件选择:请根据业务需求合理选择需要的组件,部分类型集群创建后不支持添加服务。 元数据:选择“本地元数据”。 网络配置: 可用区:默认即可。 虚拟私有云:默认即可。 子网:默认即可。 安全组:默认即可。 弹性公网IP:默认即可。 节点配置: CPU架构:默认即可。MRS 3.1.0及MRS 3.1.5版本无该参数。 常用模板:当“集群类型”选择“自定义”时该参数有效,保持默认即可。 集群节点:请根据自身需求选择节点规格和数量。 登录凭证: Kerberos认证:请根据自身需要选择,如果创建的集群中包含Presto组件,则不支持开启Kerberos认证。 用户名:默认为“admin”,用于登录集群管理页面。 密码/确认密码:设置admin用户密码,该密码请妥善保管。 登录方式:选择登录ECS节点的登录方式,本例选择“密码”方式。 用户名:默认为“root”,用于远程登录ECS机器。 密码/确认密码:设置root用户密码。 高级配置:开启高级配置,并设置“委托”: 单击“现有委托”,在下拉框中选择创建具有访问OBS权限的ECS委托创建的委托。 直接选择MRS在IAM服务中预置的委托“MRS_ECS_DEFAULT_AGENCY”。 企业项目:默认即可。 通信安全授权:勾选通信安全授权,详细介绍请参见配置MRS集群安全通信授权。 单击“立即购买”。等待集群创建成功。 当集群开启Kerberos认证时,需要确认是否需要开启Kerberos认证,若确认开启请单击“继续”,若无需开启Kerberos认证请单击“返回”关闭Kerberos认证后再创建集群。 为已有集群配置存算分离功能: 登录MRS控制台,在导航栏选择“现有集群”。 单击集群名称,进入集群详情页面。 在集群详情页的“概览”页签,单击“IAM用户同步”右侧的“同步”进行IAM用户同步。 在集群详情页的“概览”页签,单击委托右侧的“管理委托”选择需要绑定的委托并单击“确定”进行绑定,或单击“新建委托”进入IAM控制台进行创建后再在此处进行绑定。 图3 绑定委托
  • 功能描述 DLI提供了一个通用接口,可用于获取用户在启动Flink作业时设置的委托的临时凭证。该接口将获取到的该作业委托的临时凭证封装到com.huaweicloud.sdk.core.auth.BasicCredentials类中。 获取到的委托的临时认证封装到com.huaweicloud.sdk.core.auth.ICredentialProvider接口的getCredentials()返回值中。 返回类型为com.huaweicloud.sdk.core.auth.BasicCredentials。 仅支持获取AK、SK、SecurityToken。 获取到AK、SK、SecurityToken后,请参考如何使用凭据管理服务替换硬编码的数据库账号密码查询凭据。
  • 约束限制 仅支持Flink1.15版本使用委托授权访问临时凭证: 在创建作业时,请配置作业使用Flink1.15版本 已在作业中配置允许DLI访问DEW的委托信息。flink.dli.job.agency.name=自定义委托名称。 自定义委托请参考自定义DLI委托权限。 请注意配置参数不需要用"" 或 '' 包裹。 Flink1.15基础镜像内置了3.1.62版本的huaweicloud-sdk-core。
  • 示例 本例以通过DataGen表产生随机数据并输出到Mysql结果表中为例,介绍Flink Opensource SQL使用DEW管理访问凭据的配置方法。 创建DLI与Mysql的增强型跨源连接。详细步骤请参考创建增强型跨源连接。 创建DLI访问DEW的委托并完成委托授权。详细步骤请参考自定义DLI委托权限。 在DEW创建通用凭证。详细操作请参考创建通用凭据。 登录DEW管理控制台 选择“凭据管理”,进入“凭据管理”页面。 单击“创建凭据”。配置凭据基本信息 本例配置Mysql的凭据值: "MySQLUsername":"demo" "MySQLPassword":"*******",其中"*******"为Mysql的访问密码 Flink作业编辑框中输入具体的作业SQL,本示例作业参考如下。 create table dataGenSource( user_id string, amount int ) with ( 'connector' = 'datagen', 'rows-per-second' = '1', --每秒生成一条数据 'fields.user_id.kind' = 'random', --为字段user_id指定random生成器 'fields.user_id.length' = '3' --限制user_id长度为3 ); CREATE TABLE jdbcSink ( user_id string, amount int ) WITH ( 'connector' = 'jdbc', 'url' = 'jdbc:mysql://MySQLAddress:MySQLPort/flink',--其中url中的flink表示MySQL中orders表所在的数据库名 'table-name' = 'orders', 'username' = 'MySQLUsername', -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLUsername,它的值为用户的敏感信息。 'password' = 'MySQLPassword', -- DEW服务中,名称为secretInfo,且版本号v1的的通用凭证,定义凭证值的键MySQLPassword,它的值为用户的敏感信息。 'sink.buffer-flush.max-rows' = '1', 'dew.endpoint'='kms.cn-xxxx.myhuaweicloud.com', --使用的DEW服务所在的endpoint信息 'dew.csms.secretName'='secretInfo', --DEW服务通用凭据的凭据名称 'dew.csms.decrypt.fields'='username,password', --其中username,password字段值,需要利用DEW凭证管理,进行解密替换。 'dew.csms.version'='v1' ); insert into jdbcSink select * from dataGenSOurce;