7.16. アテステーションプロセスの確認
テスト Pod を作成し、そのシークレットを取得することで、アテステーションプロセスを検証できます。
この手順は、アテステーションが機能していることを確認する例です。データはメモリーダンプを使用してキャプチャーされる可能性があるため、機密データを標準 I/O に書き込まないでください。メモリーに書き込まれたデータのみが暗号化されます。
デフォルトでは、Pod 仮想マシン (VM) イメージに埋め込まれた Kata エージェントポリシーによって、Confidential Containers Pod の exec API と log API が無効になります。このポリシーは、クラスター管理者が Pod 内でプロセスを実行して機密データが抜き出されないようにすると同時に、機密データが標準 I/O に誤って書き込まれないようにします。
テストシナリオでは、ポリシーアノテーションを Pod に追加することで、実行時に制限をオーバーライドできます。テクノロジープレビューの場合、ランタイムポリシーアノテーションはリモートアテステーションによって検証されません。
前提条件
- Trustee サーバーとテスト Pod が同じクラスター内で実行されていない場合は、ルートが作成されている。
手順
verification-pod.yamlマニフェストファイルを作成します。apiVersion: v1 kind: Pod metadata: name: ocp-cc-pod labels: app: ocp-cc-pod annotations: io.katacontainers.config.agent.policy: <base64_encoded_policy>1 io.katacontainers.config.runtime.cc_init_data: <base64_initdata>2 spec: runtimeClassName: kata-remote containers: - name: skr-openshift image: registry.access.redhat.com/ubi9/ubi:9.3 command: - sleep - "36000" securityContext: privileged: false seccompProfile: type: RuntimeDefaultエージェントポリシーで
io.katacontainers.config.agent.policyアノテーションとio.katacontainers.config.runtime.cc_init_dataアノテーションの両方を指定すると、initdata のアノテーションはエージェントポリシーのアノテーションよりも優先されます。以下のコマンドを実行して Pod を作成します。
$ oc create -f verification-pod.yaml次のコマンドを実行して、
ocp-cc-podの Bash シェルに接続します。$ oc exec -it ocp-cc-pod -- bash次のコマンドを実行して Pod シークレットを取得します。
$ curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1出力例
res1val1Trustee サーバーは、証明書が成功した場合にのみシークレットを返します。