华为云UCS-云原生日志采集插件:本地集群安装云原生日志插件前置授权

时间:2024-09-12 15:06:04

本地集群安装云原生日志插件前置授权

由于云原生日志插件需要访问LTS和 AOM 两个云服务,访问云服务需要对云原生日志插件进行鉴权,本地集群云原生日志插件使用工作负载 Identity方式允许集群中的工作负载模拟 IAM 用户来访问云服务。

工作负载 Identity方式是将集群的公钥配置到IAM身份提供商中,并添加 ServiceAccount 与 IAM 账号映射规则。工作负载部署时挂载ServiceAccount对应的Token,使用此Token访问云服务,IAM 使用该公钥验证Token,从而无需直接使用 IAM 账号的 AK/SK 等信息,降低安全风险。

  1. 获取本地集群私钥签发的jwks,该公钥用于验证集群签发的 ServiceAccount Token。

    1. 使用kubectl连接本地集群。
    2. 执行如下命令获取公钥。

      kubectl get --raw /openid/v1/jwks

      返回结果为一个 json 字符串,是当前集群的签名公钥,用于访问身份供应商。

      {
          "keys": [
              {
                  "kty": "RSA",
                  "e": "AQAB",
                  "use": "sig",
                  "kid": "Ew29q....",
                  "alg": "RS256",
                  "n": "peJdm...."
              }
          ]
      }

  2. 在 IAM 配置身份供应商,标志当前集群在 IAM 侧的身份。

    1. 登录IAM控制台,查询本地集群所在项目的ID,创建身份供应商,协议选择OpenID Connect。指定插件需要配置指定的身份供应商名称,具体请参见表1。用户组的权限配置具体操作请参见用户组策略内容
      表1 log-agent身份供应商配置

      插件名称

      身份提供商名称

      客户端 ID

      namespace

      ServiceAccountName

      用户组需要开通的最小权限

      log-agent

      ucs-cluster-identity-{项目ID}

      ucs-cluster-identity

      monitoring

      log-agent-serviceaccount

      aom:alarm:*

      lts:*:*

      图1 修改身份提供商信息
    2. 单击“确定”,然后修改身份提供商信息,需要修改的信息如表2所示。随后创建身份转换规则,单击“创建规则”进行创建。
      图2 修改身份提供商信息
      表2 身份提供商配置参数说明

      参数

      说明

      访问方式

      选择“编程访问”。

      配置信息

      • 身份供应商 URL:https://kubernetes.default.svc.cluster.local。
      • 客户端 ID:指定插件需要配置指定的客户端ID,请参见表1
      • 签名公钥:本地集群的 jwks,获取方法请参见1。涉及多个集群时,请用逗号分隔每个集群的keys数组内容。

      身份转换规则

      身份转换规则的作用将集群内的ServiceAccount和IAM用户组做映射。

      • 属性:sub
      • 条件:any_one_of
      • 值:

        值的格式为:system:serviceaccount:Namespace:ServiceAccountName

        其中Namespace请修改为需要创建ServiceAccount的命名空间,ServiceAccountName请修改为需要创建的ServiceAccount名称。

        例如:值为system:serviceaccount:monitoring:log-agent-serviceaccount,表明在monitoring命名空间下创建一个名为log-agent的ServiceAccount,并映射到对应用户组,后续使用该 ServiceAccount获取的IAM Token就拥有了对应用户组的权限。

        说明:

        本地集群中的相关插件需要配置指定的 ServiceAccountName 和用户组权限才能正常工作,请参见 表1

      图3 创建身份转换规则
    3. 单击“确定”。

support.huaweicloud.com/usermanual-ucs/ucs_01_0366.html