更新时间:2023-03-17 GMT+08:00

使用OBS加密数据运行作业

MRS 3.x之前版本支持使用OBS文件系统中加密后的数据来运行作业,同时支持将加密后的作业运行结果存储在OBS文件系统中。目前仅支持通过OBS协议访问数据。

OBS支持使用KMS秘钥的加解密方式对数据进行加解密,所有的加解密操作都在OBS完成,同时秘钥管理在DEW服务。

如需在MRS中使用OBS加密功能,用户需要有“KMS Administrator”权限,且需要在相应组件进行如下配置。

如果集群同时开启“OBS权限控制”功能,此时会使用ECS配置的默认委托“MRS_ECS_DEFAULT_AGENCY”或者用户设置的自定义委托的AK/SK访问OBS服务,同时OBS服务会使用接收到的AK/SK访问数据加密服务获取KMS秘钥状态,因此需要在使用的委托上绑定“KMS Administrator”策略,否则在处理加密数据时OBS会返回“403 Forbidden”的错误信息。目前MRS服务会在默认委托“MRS_ECS_DEFAULT_AGENCY”绑定“KMS Administrator”策略,用户使用的自定义委托则需要用户自己绑定。

前提条件

如需使用OBS加密功能,请先配置MRS访问OBS功能,具体请参考配置存算分离集群(委托方式)

Hive配置

  1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
  2. 选择“组件管理 > Hive > 服务配置”。
  3. 将“基础配置”切换为“全部配置”,搜索并配置如下参数:

    表1 数据加密参数

    参数

    取值

    说明

    fs.obs.server-side-encryption-type

    SSE-KMS

    • SSE-KMS:表示使用KMS秘钥的加解密方式。
    • NONE:表示关闭加密功能。

    fs.obs.server-side-encryption-key

    -

    表示用来加密的KMS密钥ID。该参数可不配置。

    当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

    fs.obs.connection.ssl.enabled

    true

    标识是否与OBS建立安全连接。

    • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
    • false:关闭安全连接。

  4. 单击“保存配置”,勾选“重新启动受影响的服务或实例。”并单击“确定”。

Hadoop配置

方式一:通过界面配置。

  1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
  2. 选择“组件管理 > HDFS > 服务配置”
  3. 将“基础配置”切换为“全部配置”,搜索并配置如下参数:

    表2 数据加密参数

    参数

    取值

    说明

    fs.obs.server-side-encryption-type

    SSE-KMS

    • SSE-KMS:表示使用KMS秘钥的加解密方式。
    • NONE:表示关闭加密功能。

    fs.obs.server-side-encryption-key

    -

    表示用来加密的KMS密钥ID。该参数可不配置。

    当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

    fs.obs.connection.ssl.enabled

    true

    标识是否与OBS建立安全连接。

    • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
    • false:关闭安全连接。

  4. 单击“保存配置”,勾选“重新启动受影响的服务或实例。”并单击“确定”。
  5. 以root用户登录Master节点,密码为用户创建集群时设置的root密码(若集群存在多个Master节点,请分别登录每个Master节点进行5~7的操作)。
  6. 执行以下命令,切换到客户端目录,例如“/opt/Bigdata/client”。

    cd /opt/Bigdata/client

  7. 执行以下命令更新客户端配置,并输入用户名和密码,用户名为admin,密码为用户创建集群时设置的admin密码。

    ./ autoRefreshConfig.sh

方式二:通过客户端配置文件配置。

在Master节点上的客户端配置文件(例如“/opt/Bigdata/client/HDFS/hadoop/etc/hadoop/core-site.xml”)中的增加如下参数配置(若集群存在多个Master节点,请分别登录每个Master节点进行该操作)。

表3 数据加密参数

参数

取值

说明

fs.obs.server-side-encryption-type

SSE-KMS

  • SSE-KMS:表示使用KMS秘钥的加解密方式。
  • NONE:表示关闭加密功能。

fs.obs.server-side-encryption-key

-

表示用来加密的KMS密钥ID。该参数可不配置。

当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

fs.obs.connection.ssl.enabled

true

标识是否与OBS建立安全连接。

  • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
  • false:关闭安全连接。

HBase配置

方式一:通过界面配置。

  1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
  2. 选择“组件管理 > HBase > 服务配置”
  3. 将“基础配置”切换为“全部配置”,搜索并配置如下参数:

    表4 数据加密参数

    参数

    取值

    说明

    fs.obs.server-side-encryption-type

    SSE-KMS

    • SSE-KMS:表示使用KMS秘钥的加解密方式。
    • NONE:表示关闭加密功能。

    fs.obs.server-side-encryption-key

    -

    表示用来加密的KMS密钥ID。该参数可不配置。

    当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

    fs.obs.connection.ssl.enabled

    true

    标识是否与OBS建立安全连接。

    • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
    • false:关闭安全连接。

  4. 单击“保存配置”,勾选“重新启动受影响的服务或实例。”并单击“确定”。
  5. 以root用户登录Master节点,密码为用户创建集群时设置的root密码(若集群存在多个Master节点,请分别登录每个Master节点进行5~7的操作)。
  6. 执行以下命令,切换到客户端目录,例如“/opt/Bigdata/client”。

    cd /opt/Bigdata/client

  7. 执行以下命令更新客户端配置,并输入用户名和密码,用户名为admin,密码为用户创建集群时设置的admin密码。

    ./ autoRefreshConfig.sh

方式二:通过客户端配置文件配置。

在Master节点上的客户端配置文件(例如“/opt/Bigdata/client/HBase/hbase/conf/core-site.xml”)中的增加如下参数配置(若集群存在多个Master节点,请分别登录每个Master节点进行该操作)。

表5 数据加密参数

参数

取值

说明

fs.obs.server-side-encryption-type

SSE-KMS

  • SSE-KMS:表示使用KMS秘钥的加解密方式。
  • NONE:表示关闭加密功能。

fs.obs.server-side-encryption-key

-

表示用来加密的KMS密钥ID。该参数可不配置。

当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

fs.obs.connection.ssl.enabled

true

标识是否与OBS建立安全连接。

  • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
  • false:关闭安全连接。

Spark配置

方式一:通过界面配置。

  1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
  2. 选择“组件管理 > Spark > 服务配置”
  3. 将“基础配置”切换为“全部配置”,搜索并配置如下参数:

    表6 数据加密参数

    参数

    取值

    说明

    fs.obs.server-side-encryption-type

    SSE-KMS

    • SSE-KMS:表示使用KMS秘钥的加解密方式。
    • NONE:表示关闭加密功能。

    fs.obs.server-side-encryption-key

    -

    表示用来加密的KMS密钥ID。该参数可不配置。

    当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

    fs.obs.connection.ssl.enabled

    true

    标识是否与OBS建立安全连接。

    • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
    • false:关闭安全连接。

  4. 单击“保存配置”,勾选“重新启动受影响的服务或实例。”并单击“确定”。
  5. 以root用户登录Master节点,密码为用户创建集群时设置的root密码(若集群存在多个Master节点,请分别登录每个Master节点进行5~7的操作)。
  6. 执行以下命令,切换到客户端目录,例如“/opt/Bigdata/client”。

    cd /opt/Bigdata/client

  7. 执行以下命令更新客户端配置,并输入用户名和密码,用户名为admin,密码为用户创建集群时设置的admin密码。

    ./autoRefreshConfig.sh

方式二:通过客户端配置文件配置。

在Master节点上的客户端配置文件(例如“/opt/Bigdata/client/Spark/spark/conf/core-site.xml”)中的增加如下参数配置(若集群存在多个Master节点,请分别登录每个Master节点进行该操作)。

表7 数据加密参数

参数

取值

说明

fs.obs.server-side-encryption-type

SSE-KMS

  • SSE-KMS:表示使用KMS秘钥的加解密方式。
  • NONE:表示关闭加密功能。

fs.obs.server-side-encryption-key

-

表示用来加密的KMS密钥ID。该参数可不配置。

当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

fs.obs.connection.ssl.enabled

true

标识是否与OBS建立安全连接。

  • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
  • false:关闭安全连接。

Presto配置

  1. 登录MRS控制台,在左侧导航栏选择集群列表 > 现有集群 ,单击集群名称。
  2. 选择“组件管理 > Presto > 服务配置”
  3. 将“基础配置”切换为“全部配置”,搜索并配置如下参数:

    表8 数据加密参数

    参数

    取值

    说明

    fs.obs.server-side-encryption-type

    SSE-KMS

    • SSE-KMS:表示使用KMS秘钥的加解密方式。
    • NONE:表示关闭加密功能。

    fs.obs.server-side-encryption-key

    -

    表示用来加密的KMS密钥ID。该参数可不配置。

    当参数“fs.obs.server-side-encryption-type”配置为“SSE-KMS”且该参数未配置时,OBS会使用OBS服务的默认KMS密钥完成加密。

    fs.obs.connection.ssl.enabled

    true

    标识是否与OBS建立安全连接。

    • true:开启安全连接,当需要使用OBS加解密功能时该参数必须配置为“true”。
    • false:关闭安全连接。

  4. 单击“保存配置”,勾选“重新启动受影响的服务或实例。”并单击“确定”。