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

时间:2024-04-15 15:32:58

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

由于云原生日志插件需要访问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:*:*

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

      参数

      说明

      访问方式

      选择“编程访问”。

      配置信息

      • 身份供应商 URL:https://kubernetes.default.svc.cluster.local。
      • 客户端 ID:指定插件需要配置指定的客户端 ID,请参见 表1
      • 签名公钥:本地集群的 jwks,获取方法请参见1

      身份转换规则

      • 身份映射规则是将集群内的 ServiceAccount 和 IAM 用户组做映射。
      • 例如:在集群 default 命名空间下创建一个名为 XXX 的 ServiceAccount,映射到 demo 用户组,后续使用该 ServiceAccount 获取的 IAM Token 访问云服务就具有 demo 用户组的权限。
      • 映射规则中,属性必须为 sub,值的格式为:system:serviceaccount:Namespace:ServiceAccountName
      • 本地集群中的相关插件需要配置指定的 ServiceAccountName 和用户组权限才能正常工作,请参见 表1

    3. 单击“确定”。

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