4.4. Azure での Confidential Containers のデプロイ
OpenShift Sandboxed Containers をデプロイした後に、Microsoft Azure Cloud Computing Services に Confidential Containers をデプロイすることができます。
Azure の Confidential Containers はテクノロジープレビュー機能です。テクノロジープレビュー機能は、Red Hat 製品のサービスレベルアグリーメント (SLA) の対象外であり、機能的に完全ではないことがあります。Red Hat は、実稼働環境でこれらを使用することを推奨していません。テクノロジープレビューの機能は、最新の製品機能をいち早く提供して、開発段階で機能のテストを行いフィードバックを提供していただくことを目的としています。
Red Hat のテクノロジープレビュー機能のサポート範囲に関する詳細は、テクノロジープレビュー機能のサポート範囲 を参照してください。
クラスターの要件
- Confidential compute attestation Operator をインストールするクラスターに Red Hat OpenShift Container Platform 4.15 以降がインストールされている。
次の手順を実行して、Confidential Containers をデプロイします。
- Confidential compute attestation Operator をインストールします。
- Trustee のルートを作成します。
- Confidential Containers フィーチャーゲートを有効にします。
- ピア Pod config map を更新します。
-
KataConfig
カスタムリソース (CR) を削除します。 -
KataConfig
CR を再作成します。 - Trustee 認証シークレットを作成します。
- Trustee config map を作成します。
アテステーションポリシーを設定します。
- 参照値を作成します。
- アテスしたクライアントのシークレットを作成します。
- リソースアクセスポリシーを作成します。
- オプション: デフォルトポリシーをオーバーライドする設定アテステーションポリシーを作成します。
- TEE が Intel Trust Domain Extensions の場合は、Provisioning Certificate Caching Service を設定します。
-
KbsConfig
CR を作成します。 - アテステーションプロセスを確認します。
4.4.1. Confidential compute attestation Operator のインストール リンクのコピーリンクがクリップボードにコピーされました!
CLI を使用して、Confidential compute attestation Operator を Azure にインストールできます。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
trustee-namespace.yaml
マニフェストファイルを作成します。apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
apiVersion: v1 kind: Namespace metadata: name: trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
trustee-operator-system
namespace を作成します。oc apply -f trustee-namespace.yaml
$ oc apply -f trustee-namespace.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow trustee-operatorgroup.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して Operator グループを作成します。
oc apply -f trustee-operatorgroup.yaml
$ oc apply -f trustee-operatorgroup.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow trustee-subscription.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、サブスクリプションを作成します。
oc apply -f trustee-subscription.yaml
$ oc apply -f trustee-subscription.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Operator が正常にインストールされていることを確認します。
oc get csv -n trustee-operator-system
$ oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow このコマンドが完了するまでに数分かかる場合があります。
次のコマンドを実行してプロセスを監視します。
watch oc get csv -n trustee-operator-system
$ watch oc get csv -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME DISPLAY PHASE trustee-operator.v0.1.0 Trustee Operator 0.1.0 Succeeded
NAME DISPLAY PHASE trustee-operator.v0.1.0 Trustee Operator 0.1.0 Succeeded
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.2. Trustee のルートの作成 リンクのコピーリンクがクリップボードにコピーされました!
Trustee のエッジ TLS 終端を使用してセキュアなルートを作成できます。外部の Ingress トラフィックは HTTPS としてルーター Pod に到達し、HTTP として Trustee Pod に渡されます。
前提条件
- Confidential Containers フィーチャーゲートを有効にしている。
- Confidential compute attestation Operator がインストールされている。
手順
次のコマンドを実行してエッジルートを作成します。
oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
$ oc create route edge --service=kbs-service --port kbs-port \ -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記注記: 現在、有効な CA 署名証明書を持つルートのみがサポートされています。自己署名証明書を使用したルートは使用できません。
次のコマンドを実行して、
TRUSTEE_HOST
変数を設定します。TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
$ TRUSTEE_HOST=$(oc get route -n trustee-operator-system kbs-service \ -o jsonpath={.spec.host})
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してルートを確認します。
echo $TRUSTEE_HOST
$ echo $TRUSTEE_HOST
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
kbs-service-trustee-operator-system.apps.memvjias.eastus.aroapp.io
Copy to Clipboard Copied! Toggle word wrap Toggle overflow ピア Pod Config Map のこの値を記録します。
4.4.3. Confidential Containers フィーチャーゲートの有効化 リンクのコピーリンクがクリップボードにコピーされました!
Confidential Containers フィーチャーゲートを有効にする必要があります。
手順
cc-feature-gate.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して config map を作成します。
oc apply -f cc-feature-gate.yaml
$ oc apply -f cc-feature-gate.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.4. ピア Pod の更新 config map リンクのコピーリンクがクリップボードにコピーされました!
Confidential Containers のピア Pod config map を更新する必要があります。
Secure Boot を true
に設定して、デフォルトで有効にします。デフォルト値は false
で、セキュリティーリスクが発生します。
手順
Azure インスタンスから以下の値を取得します。
Azure リソースグループを取得して記録します。
AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}') && echo "AZURE_RESOURCE_GROUP: \"$AZURE_RESOURCE_GROUP\""
$ AZURE_RESOURCE_GROUP=$(oc get infrastructure/cluster -o jsonpath='{.status.platformStatus.azure.resourceGroupName}') && echo "AZURE_RESOURCE_GROUP: \"$AZURE_RESOURCE_GROUP\""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure VNet 名を取得し、記録します。
AZURE_VNET_NAME=$(az network vnet list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Name:name}" --output tsv)
$ AZURE_VNET_NAME=$(az network vnet list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Name:name}" --output tsv)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この値は、Azure サブネット ID を取得するために使用されます。
Azure サブネット ID を取得して記録します。
AZURE_SUBNET_ID=$(az network vnet subnet list --resource-group ${AZURE_RESOURCE_GROUP} --vnet-name $AZURE_VNET_NAME --query "[].{Id:id} | [? contains(Id, 'worker')]" --output tsv) && echo "AZURE_SUBNET_ID: \"$AZURE_SUBNET_ID\""
$ AZURE_SUBNET_ID=$(az network vnet subnet list --resource-group ${AZURE_RESOURCE_GROUP} --vnet-name $AZURE_VNET_NAME --query "[].{Id:id} | [? contains(Id, 'worker')]" --output tsv) && echo "AZURE_SUBNET_ID: \"$AZURE_SUBNET_ID\""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure ネットワークセキュリティーグループ (NSG) ID を取得して記録します。
AZURE_NSG_ID=$(az network nsg list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id:id}" --output tsv) && echo "AZURE_NSG_ID: \"$AZURE_NSG_ID\""
$ AZURE_NSG_ID=$(az network nsg list --resource-group ${AZURE_RESOURCE_GROUP} --query "[].{Id:id}" --output tsv) && echo "AZURE_NSG_ID: \"$AZURE_NSG_ID\""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Azure リージョンを取得して記録します。
AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP} --query "{Location:location}" --output tsv) && echo "AZURE_REGION: \"$AZURE_REGION\""
$ AZURE_REGION=$(az group show --resource-group ${AZURE_RESOURCE_GROUP} --query "{Location:location}" --output tsv) && echo "AZURE_REGION: \"$AZURE_REGION\""
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
以下の例に従って
peer-pods-cm.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- ワークロードでインスタンスサイズが定義されていない場合、この値がデフォルトになります。
- 2
- Pod の作成時に指定できるすべてのインスタンスサイズを一覧表示します。これにより、メモリーと CPU をあまり必要としないワークロードには小さいインスタンスサイズを定義したり、ワークロードが大きい場合は大きいインスタンスサイズを定義したりすることができます。
- 3
- 取得した
AZURE_SUBNET_ID
値を指定します。 - 4
- 取得した
AZURE_NSG_ID
値を指定します。 - 5
- オプション: デフォルトでは、この値は、クラスターの認証情報に基づく Azure イメージ ID を使用して
KataConfig
CR を実行するときに入力されます。独自の Azure イメージを作成する場合は、正しいイメージ ID を指定します。 - 6
- 取得した
AZURE_REGION
値を指定します。 - 7
- 取得した
AZURE_RESOURCE_GROUP
値を指定します。 - 8
- Trustee ルートのホスト名を指定します。
- 9
true
を指定すると、デフォルトでセキュアブートが有効になります。
以下のコマンドを実行して config map を作成します。
oc apply -f peer-pods-cm.yaml
$ oc apply -f peer-pods-cm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
peerpodconfig-ctrl-caa-daemon
デーモンセットを再起動します。oc set env ds/peerpodconfig-ctrl-caa-daemon \ -n openshift-sandboxed-containers-operator REBOOT="$(date)"
$ oc set env ds/peerpodconfig-ctrl-caa-daemon \ -n openshift-sandboxed-containers-operator REBOOT="$(date)"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.5. KataConfig カスタムリソースの削除 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、KataConfig
カスタムリソース (CR) を削除できます。
KataConfig
CR を削除すると、ランタイムと関連リソースがクラスターから削除されます。
KataConfig
CR を削除すると、ワーカーノードが自動的に再起動します。再起動には 10 分から 60 分以上かかる場合があります。再起動時間を妨げる要因は次のとおりです。
- より多くのワーカーノードを持つ大規模な OpenShift Container Platform デプロイメント。
- BIOS および診断ユーティリティーが有効である。
- SSD ではなくハードドライブへのデプロイメント。
- 仮想ノードではなく、ベアメタルなどの物理ノードにデプロイしている。
- CPU とネットワークが遅い。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次のコマンドを実行して、
KataConfig
CR を削除します。oc delete kataconfig example-kataconfig
$ oc delete kataconfig example-kataconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow OpenShift Sandboxed Containers Operator は、クラスターでランタイムを有効化するために初期に作成されていたリソースをすべて削除します。
重要KataConfig
CR を削除すると、すべてのワーカーノードが再起動するまで CLI は応答を停止します。検証を実行する前に、削除プロセスを完了する必要があります。以下のコマンドを実行して、カスタムリソースが削除されたことを確認します。
oc get kataconfig example-kataconfig
$ oc get kataconfig example-kataconfig
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
No example-kataconfig instances exist
No example-kataconfig instances exist
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.6. KataConfig カスタムリソースの再作成 リンクのコピーリンクがクリップボードにコピーされました!
Confidential Containers の KataConfig
カスタムリソース (CR) を再作成する必要があります。
KataConfig
CR を作成すると、ワーカーノードが自動的に再起動します。再起動には 10 分から 60 分以上かかる場合があります。再起動時間を妨げる要因は次のとおりです。
- より多くのワーカーノードを持つ大規模な OpenShift Container Platform デプロイメント。
- BIOS および診断ユーティリティーが有効である。
- SSD ではなくハードディスクドライブにデプロイしている。
- 仮想ノードではなく、ベアメタルなどの物理ノードにデプロイしている。
- CPU とネットワークが遅い。
前提条件
-
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
以下の例に従って
example-kataconfig.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- オプション: 特定のノードに
kata-remote
をインストールするためにノードラベルを適用した場合は、キーと値を指定します (例:cc: 'true')
。
次のコマンドを実行して、
KataConfig
CR を作成します。oc apply -f example-kataconfig.yaml
$ oc apply -f example-kataconfig.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 新しい
KataConfig
CR が作成され、ワーカーノードにkata-remote
がランタイムクラスとしてインストールされます。インストールを確認する前に、
kata-remote
のインストールが完了し、ワーカーノードが再起動するまで待ちます。次のコマンドを実行して、インストールの進行状況を監視します。
watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
$ watch "oc describe kataconfig | sed -n /^Status:/,/^Events/p"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow kataNodes
の下にあるすべてのワーカーのステータスがinstalled
で、理由を指定せずにInProgress
の条件がFalse
の場合、kata
はクラスターにインストールされます。次のコマンドを実行してデーモンセットを確認します。
oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemon
$ oc get -n openshift-sandboxed-containers-operator ds/peerpodconfig-ctrl-caa-daemon
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してランタイムクラスを確認します。
oc get runtimeclass
$ oc get runtimeclass
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME HANDLER AGE kata kata 152m kata-remote kata-remote 152m
NAME HANDLER AGE kata kata 152m kata-remote kata-remote 152m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.7. Trustee 認証シークレットの作成 リンクのコピーリンクがクリップボードにコピーされました!
Trustee の認証シークレットを作成する必要があります。
前提条件
-
OpenShift CLI (
oc
) がインストールされている。 -
cluster-admin
ロールを持つユーザーとしてクラスターにアクセスできる。
手順
次のコマンドを実行して、秘密鍵を作成します。
openssl genpkey -algorithm ed25519 > privateKey
$ openssl genpkey -algorithm ed25519 > privateKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、公開鍵を作成します。
openssl pkey -in privateKey -pubout -out publicKey
$ openssl pkey -in privateKey -pubout -out publicKey
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してシークレットを作成します。
oc create secret generic kbs-auth-public-key --from-file=publicKey -n trustee-operator-system
$ oc create secret generic kbs-auth-public-key --from-file=publicKey -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行してシークレットを確認します。
oc get secret -n trustee-operator-system
$ oc get secret -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.8. Trustee config map の作成 リンクのコピーリンクがクリップボードにコピーされました!
Trustee サーバーを設定するには、config map を作成する必要があります。
前提条件
- Trustee のルートを作成している。
手順
kbs-config-cm.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して config map を作成します。
oc apply -f kbs-config-cm.yaml
$ oc apply -f kbs-config-cm.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.9. アテステーションポリシーの設定 リンクのコピーリンクがクリップボードにコピーされました!
次のアテステーションポリシー設定を指定できます。
- 参照値
ハードウェアプラットフォームの信頼できるダイジェストを指定することにより、Reference Value Provider Service (RVPS) の参照値を設定できます。
クライアントは、実行中のソフトウェア、Trusted Execution Environment (TEE) のハードウェアとファームウェアから測定値を収集し、請求とともに見積りを Attestation Server に送信します。これらの測定値は、Trustee に登録された信頼できるダイジェストと一致する必要があります。このプロセスにより、Confidential VM (CVM) が期待どおりのソフトウェアスタックを実行し、改ざんがされていないように確認します。
- クライアントのシークレット
- アテストされたクライアントと共有するシークレットを 1 つ以上作成する必要があります。
- リソースアクセスポリシー
アクセスするリソースを決定するには、Trustee ポリシーエンジンのポリシーを設定する必要があります。
Trustee ポリシーエンジンと、TEE 証拠の有効性を決定する Attestation Service ポリシーエンジンを混同しないでください。
- アテステーションポリシー
- オプション: 独自の設定アテステーションポリシーを作成して、デフォルトの設定アテステーションポリシーを上書きできます。
- TDX の Provisioning Certificate Caching Service
TEE が Intel Trust Domain Extensions (TDX) である場合は、Provisioning Certificate Caching Service (PCCS) を設定する必要があります。PCCS は、Provisioning Certification Key (PCK) 証明書を取得し、ローカルデータベースにキャッシュします。
重要パブリック Intel PCCS サービスを使用しないでください。オンプレミスまたはパブリッククラウド上のローカルキャッシュサービスを使用します。
手順
rvps-configmap.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 必要に応じて、お使いのハードウェアプラットフォームの信頼できるダイジェストを指定します。それ以外の場合は、空のままにします。
次のコマンドを実行して、RVPS config map を作成します。
oc apply -f rvps-configmap.yaml
$ oc apply -f rvps-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次の例に従って、アテストされたクライアントと共有する 1 つ以上のシークレットを作成します。
oc create secret generic kbsres1 --from-literal key1=<res1val1> \ --from-literal key2=<res1val2> -n trustee-operator-system
$ oc create secret generic kbsres1 --from-literal key1=<res1val1> \ --from-literal key2=<res1val2> -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow この例では、
kbsres1
シークレットには 2 つのエントリー (key1
、key2
) があり、Trustee クライアントはこれらを取得します。要件に応じてシークレットを追加できます。resourcepolicy-configmap.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- リソースポリシーの名前
policy.rego
は、Trustee config map で定義されたリソースポリシーと一致する必要があります。 - 2
- リソースポリシーは Open Policy Agent 仕様に準拠します。この例では、TEE がサンプルのアテスターでない場合にすべてのリソースを取得できます。
次のコマンドを実行して、リソースポリシーの config map を作成します。
oc apply -f resourcepolicy-configmap.yaml
$ oc apply -f resourcepolicy-configmap.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow オプション: 次の例に従って、
attestation-policy.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- アテステーションポリシーは、Open Policy Agent 仕様に準拠します。この例では、アテステーションポリシーは、アテステーションレポートで提供されたクレームを RVPS データベースに登録されている参照値と比較します。すべての値が一致する場合にのみ、アテステーションプロセスは成功します。
以下のコマンドを実行して、アテステーションポリシー config map を作成します。
oc apply -f attestation-policy.yaml
$ oc apply -f attestation-policy.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow TEE が Intel TDX の場合は、
tdx-config.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- PCCS URL を指定します (例:
https://localhost:8081/sgx/certification/v4/)
。
以下のコマンドを実行して TDX config map を作成します。
oc apply -f tdx-config.yaml
$ oc apply -f tdx-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.10. KbsConfig カスタムリソースの作成 リンクのコピーリンクがクリップボードにコピーされました!
Trustee を起動するには、KbsConfig
カスタムリソース (CR) を作成する必要があります。
次に、Trustee Pod および Pod ログをチェックして設定を確認します。
手順
kbsconfig-cr.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下のコマンドを実行して
KbsConfig
CR を作成します。oc apply -f kbsconfig-cr.yaml
$ oc apply -f kbsconfig-cr.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
次のコマンドを実行して、デフォルトのプロジェクトを設定します。
oc project trustee-operator-system
$ oc project trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Pod を確認します。
oc get pods -n trustee-operator-system
$ oc get pods -n trustee-operator-system
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
NAME READY STATUS RESTARTS AGE trustee-deployment-8585f98449-9bbgl 1/1 Running 0 22m trustee-operator-controller-manager-5fbd44cd97-55dlh 2/2 Running 0 59m
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
POD_NAME
環境変数を設定します。POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
$ POD_NAME=$(oc get pods -l app=kbs -o jsonpath='{.items[0].metadata.name}' -n trustee-operator-system)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Pod ログを確認します。
oc logs -n trustee-operator-system $POD_NAME
$ oc logs -n trustee-operator-system $POD_NAME
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.4.11. アテステーションプロセスの確認 リンクのコピーリンクがクリップボードにコピーされました!
テスト Pod を作成し、そのシークレットを取得することで、アテステーションプロセスを検証できます。
この手順は、アテステーションが機能していることを確認する例です。データはメモリーダンプを使用してキャプチャーされる可能性があるため、機密データを標準 I/O に書き込まないでください。メモリーに書き込まれたデータのみが暗号化されます。
デフォルトでは、Pod 仮想マシンイメージに埋め込まれたエージェント側のポリシーにより、Confidential Containers Pod の exec
API と log
API が無効になります。このポリシーにより、機密データが標準の I/O に書き込まれないようにします。
テストシナリオでは、ポリシーアノテーションを Pod に追加することで、実行時に制限をオーバーライドできます。テクノロジープレビューの場合、ランタイムポリシーアノテーションはリモートアテステーションによって検証されません。
前提条件
- Trustee サーバーとテスト Pod が同じクラスター内で実行されていない場合は、ルートが作成されている。
手順
verification-pod.yaml
マニフェストファイルを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- この Pod アノテーションは、機密データが標準 I/O に書き込まれないようにするポリシーをオーバーライドします。
以下のコマンドを実行して Pod を作成します。
oc create -f verification-pod.yaml
$ oc create -f verification-pod.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
ocp-cc-pod
の Bash シェルに接続します。oc exec -it ocp-cc-pod -- bash
$ oc exec -it ocp-cc-pod -- bash
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して Pod シークレットを取得します。
curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1
$ curl http://127.0.0.1:8006/cdh/resource/default/kbsres1/key1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 出力例
res1val1
res1val1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Trustee サーバーは、証明書が成功した場合にのみシークレットを返します。