3.6. 创建 initdata


您可以创建一个 initdata.toml 文件,并将其转换为 gzip 格式的 Base64 编码字符串。

对于特定 pod,您可以将此字符串指定为对等 pod 配置映射中的 INITDATA 值、全局配置或作为注解。

重要

如果在 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>'
    cert = """
    -----BEGIN CERTIFICATE-----
    <kbs_certificate>
    -----END CERTIFICATE-----
    """
    '''
    
    "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-----
    """
    '''
    
    "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 ExecProcessRequest := false
    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 SetPolicyRequest := 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 WriteStreamRequest := true
    '''
    Copy to Clipboard Toggle word wrap
    • <trustee-url > : 指定红帽构建的 Trustee IP 地址和端口,例如 https://192.168.122.22:32178
    • <kbs_certificate > : 为 attestation 代理指定 Base64 编码的 TLS 证书。
    • kbs_cert: 如果您在 kbs-config 配置映射中配置 insecure_http = true,请删除 kbs_cert 设置。
  4. 运行以下命令,将 initdata.toml 文件转换为 gzip 格式的 Base64 编码字符串:

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

    为对等 pod 配置映射或对等 pod 清单记录此字符串。

  5. 运行以下命令,计算 initdata.toml 文件的 SHA-256 哈希,并将其值分配给 hash 变量:

    $ hash=$(sha256sum initdata.toml | cut -d' ' -f1)
    Copy to Clipboard Toggle word wrap
  6. 运行以下命令,将 32 字节 0s 分配给 initial_pcr 变量:

    $ initial_pcr=0000000000000000000000000000000000000000000000000000000000000000
    Copy to Clipboard Toggle word wrap
  7. 运行以下命令,计算哈希和 initial_pcr 的 SHA-256 哈希,并将其值分配给 PCR8_HASH 变量:

    $ PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1) && echo $PCR8_HASH
    Copy to Clipboard Toggle word wrap

    记录下 PCR8_HASH 值的.运行以下命令,计算 initdata.toml 文件的 SHA-256 哈希,并将其值分配给 hash 变量:

    $ hash=$(sha256sum initdata.toml | cut -d' ' -f1)
    Copy to Clipboard Toggle word wrap
  8. 运行以下命令,将 32 字节 0s 分配给 initial_pcr 变量:

    $ initial_pcr=0000000000000000000000000000000000000000000000000000000000000000
    Copy to Clipboard Toggle word wrap
  9. 运行以下命令,计算哈希和 initial_pcr 的 SHA-256 哈希,并将其值分配给 PCR8_HASH 变量:

    $ PCR8_HASH=$(echo -n "$initial_pcr$hash" | xxd -r -p | sha256sum | cut -d' ' -f1) && echo $PCR8_HASH
    Copy to Clipboard Toggle word wrap

    记录 RVPS 配置映射的 PCR8_HASH 值。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat