4.6. 创建 initdata


您可以创建 initdata 以在运行时安全地初始化带有敏感或特定于工作负载的数据的 pod,从而避免需要在虚拟机镜像中嵌入此数据。这种方法通过降低公开机密信息的风险并消除自定义镜像构建需求来提供额外的安全性。

您可以为 pod 配置映射中指定 initdata,对于全局配置,或者在 pod 清单中为特定 pod 指定。pod 清单中的 initdata 值覆盖 pod 配置映射中设置的值。

重要

在生产环境中,您必须创建 initdata 来覆盖默认的 permissive Kata 代理策略。

您可以在对等 pod 配置映射中指定 initdata,用于全局配置,或者在对等 pod 清单中为特定 pod 指定。peer pod 清单中的 initdata 值覆盖对等 pod 配置映射中设置的值。

重要

如果您在红帽构建的 Trustee 的 kbs-config 配置映射中配置 insecure_http = true,则必须删除 kbs_cert 设置。

流程

  1. 运行以下命令,获取红帽构建的 Trustee IP 地址:

    $ oc get node $(oc get pod -n trustee-operator-system \
      -o jsonpath='{.items[0].spec.nodeName}') \
      -o jsonpath='{.status.addresses[?(@.type=="InternalIP")].address}'
    Copy to Clipboard Toggle word wrap

    输出示例

    192.168.122.22
    Copy to Clipboard Toggle word wrap

  2. 运行以下命令来获取端口:

    $ oc get svc kbs-service -n trustee-operator-system
    Copy to Clipboard Toggle word wrap

    输出示例

    NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)          AGE
    kbs-service  NodePort    172.30.116.11   <none>        8080:32178/TCP   12d
    Copy to Clipboard Toggle word wrap

  3. 创建 initdata.toml 文件:

    algorithm = "sha384"
    version = "0.1.0"
    
    [data]
    "aa.toml" = '''
    [token_configs]
    [token_configs.coco_as]
    
    url = '<trustee_url>'
    
    [token_configs.kbs]
    url = '<trustee_url>'
    '''
    
    "cdh.toml" = '''
    socket = 'unix:///run/confidential-containers/cdh.sock'
    credentials = []
    
    [kbc]
    name = 'cc_kbc'
    url = '<trustee_url>'
    kbs_cert = """
    -----BEGIN CERTIFICATE-----
    <kbs_certificate>
    -----END CERTIFICATE-----
    """
    [image]
    image_security_policy_uri = 'kbs:///default/<secret-policy-name>/<key>
    '''
    
    "policy.rego" = '''
    package agent_policy
    
    default AddARPNeighborsRequest := true
    default AddSwapRequest := true
    default CloseStdinRequest := true
    default CopyFileRequest := true
    default CreateContainerRequest := true
    default CreateSandboxRequest := true
    default DestroySandboxRequest := true
    default GetMetricsRequest := true
    default GetOOMEventRequest := true
    default GuestDetailsRequest := true
    default ListInterfacesRequest := true
    default ListRoutesRequest := true
    default MemHotplugByProbeRequest := true
    default OnlineCPUMemRequest := true
    default PauseContainerRequest := true
    default PullImageRequest := true
    default ReadStreamRequest := true
    default RemoveContainerRequest := true
    default RemoveStaleVirtiofsShareMountsRequest := true
    default ReseedRandomDevRequest := true
    default ResumeContainerRequest := true
    default SetGuestDateTimeRequest := true
    default SignalProcessRequest := true
    default StartContainerRequest := true
    default StartTracingRequest := true
    default StatsContainerRequest := true
    default StopTracingRequest := true
    default TtyWinResizeRequest := true
    default UpdateContainerRequest := true
    default UpdateEphemeralMountsRequest := true
    default UpdateInterfaceRequest := true
    default UpdateRoutesRequest := true
    default WaitProcessRequest := true
    default ExecProcessRequest := false
    default SetPolicyRequest := false
    default WriteStreamRequest := false
    
    ExecProcessRequest if {
        input_command = concat(" ", input.process.Args)
        some allowed_command in policy_data.allowed_commands
        input_command == allowed_command
    }
    
    policy_data := {
      "allowed_commands": [
            "curl http://127.0.0.1:8006/cdh/resource/default/attestation-status/status"
      ]
    }
    '''
    Copy to Clipboard Toggle word wrap
    url
    指定红帽构建的 Trustee IP 地址和端口,例如 https://192.168.122.22:32178
    <kbs_certificate>
    为 attestation 代理指定 Base64 编码的 TLS 证书。
    kbs_cert
    如果您在红帽构建的 Trustee 的 kbs-config 配置映射中配置 insecure_http = true,请删除 kbs_cert 设置。
    image_security_policy_uri
    可选,只有在启用了容器镜像签名验证策略时。将 <secret-policy-name > 和 <key> 替换为 创建 KbsConfig 自定义资源中指定 的 secret 名称和密钥。
  4. 运行以下命令,将 initdata.toml 文件转换为 gzip 格式的 Base64 编码字符串:

    $ cat initdata.toml | gzip | base64 -w0 > initdata.txt
    Copy to Clipboard Toggle word wrap

    记录此字符串,以便在对等 pod 配置映射或对等 pod 清单中使用。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2026 Red Hat