密钥管理
配置密钥可以避免明文AccessKey、密码等信息带来的安全风险,支持在SQL作业、查询脚本、日志配置和创建Catalog中使用。本文为您介绍如何配置密钥以及其使用方法。
前提条件
请确认您的账号为目标项目空间中具有editor或owner权限的成员。授权操作详情请参见项目空间授权。
使用限制
仅支持新增和删除密钥,不支持修改和查看密钥值。
不支持一个密钥名称配置多个密钥值。
仅支持在创建临时表(即CREATE TEMPORARY TABLE)时的WITH参数中调用密钥,如果在持久表(即CREATE TABLE)的WITH参数中调用密钥,则这张表会无法正常使用。
注意事项
请谨慎删除已创建的密钥,可能会导致开发中的SQL作业无法部署,或需要重新部署已上线的作业。但不影响已经上线作业的运行。
新增密钥
登录实时计算控制台,在Flink全托管页签,单击目标工作空间操作列下的控制台。
在安全中心页面,单击密钥托管页签。
单击新增密钥,填写密钥名称和密钥值。
重要密钥值的字母大小写敏感,请注意密钥值的字母大小写。
单击确定。
调用密钥
新增密钥后,您可以在SQL作业的DDL、日志配置(包含配置管理中的日志和作业部署详情的日志)和UI界面(创建Catalog)中调用已配置的密钥。
SQL作业
单击开发控制台左侧导航栏的SQL开发。
在目标作业的SQL编辑器中调用。
调用密钥的整体格式为
${secret_values.密钥名}
,调用时您仅需将其中的密钥名进行修改,其他部分保留不变,具体示例如下。CREATE TEMPORARY table datahub_source( name VARCHAR ) WITH ( 'connector' = 'datagen' ); CREATE TEMPORARY table datahub_sink( name VARCHAR ) WITH ( 'connector'='datahub', 'endpoint'='<yourEndpoint>', 'project'='<yourProject>', 'topic'='<yourTopic>', 'accessId'='<yourAccessId>', 'accessKey'='${secret_values.test_ak}' --此处调用名称为test_ak的密钥,请不要删除secret_values前缀。 ); INSERT INTO datahub_sink SELECT LOWER(name) from datahub_source;
日志配置
进入日志配置页面。
配置单个作业,具体操作请参见进入配置单个作业日志输出入口。
配置工作空间下所有作业,具体操作请参见进入到作业日志模板配置入口。
在日志配置中调用密钥。
与在SQL中使用方式相同。例如,在配置作业日志输出到SLS时调用AccessKey密钥示例如下,完整日志输出配置信息具体请参见配置作业日志输出。
<Appender name="SLS" type="SLS"> <Layout pattern="%d{yyyy-MM-dd HH:mm:ss,SSS}{GMT+8} %-5p %-60c %x - %m%n" type="PatternLayout" charset="UTF-8"/> <!-- The final effective log path is: ${baseUri}/logs/${namespace}/${deploymentId}/{jobId}/ --> <Property name="namespace">{{ namespace }}</Property> <!-- Do not modify this line --> <Property name="project">YOUR-SLS-PROJECT</Property> <Property name="logStore">YOUR-SLS-LOGSTORE</Property> <Property name="endpoint">YOUR-SLS-ENDPOINT</Property> <Property name="accessKeyId">${secret_values.accessKeyId}</Property> <Property name="accessKeySecret">${secret_values.accessKeySecret}</Property> <Property name="topic">{{ namespace }}:{{ deploymentId }}:{{ jobId }}</Property> <Property name="deploymentName">{{ deploymentName }}</Property> <Property name="flushIntervalSeconds">10</Property> <Property name="flushIntervalEventCount">100</Property> </Appender>
UI界面
在通过UI界面方式创建Catalog时,您可以在配置项中调用密钥。
在Flink开发控制台左侧导航栏,单击元数据管理。
在创建Catalog页面调用密钥。例如在MySQL Catalog中调用密钥配置示例如下。