2.6. TDX ワークロード用の TDX リモートアテステーションインフラストラクチャーの設定
機密コンテナーのベアメタルインフラストラクチャー用の Pod 仮想マシンイメージをデプロイできます。これには、Intel Trust Domain Extensions (TDX) のリモートアテステーションを提供する次のコンポーネントが含まれます。
- クラスター内 Provisioning Certificate Caching Service (PCCS) のデプロイメント
- ノードごとの PCK Cert ID Retrieval Tool に基づいたプラットフォームの (再) 登録
- ノードごとの TDX-QGS 引用サービス
デプロイメントに必要な namespace、シークレット、証明書、および環境変数をセットアップできます。
前提条件
- Intel Device Plugins Operator をインストールし、Intel Software Guard Extensions Device Plugin のインスタンスを作成している。詳細は、OpenShift Container Platform ドキュメントの Web コンソールを使用したソフトウェアカタログからのインストール を参照してください。
- PCCS をデプロイするノードはインターネットにアクセスできる必要があります。
手順
次のコマンドを実行して、
intel-dcapnamespace を作成します。oc create namespace intel-dcap
$ oc create namespace intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
intel-dcapプロジェクトに切り替えます。oc project intel-dcap
$ oc project intel-dcapCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、Security Context Constraint を更新します。
oc adm policy add-scc-to-user privileged -z default
$ oc adm policy add-scc-to-user privileged -z defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、デフォルトのプロジェクトに切り替えます。
oc project default
$ oc project defaultCopy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して
PCCS_API_KEY変数を設定します。export PCCS_API_KEY="${PCCS_API_KEY:-}"$ export PCCS_API_KEY="${PCCS_API_KEY:-}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_API_KEY- Intel® SGX および Intel® TDX Provisioning Certification Service の API キー。Intel Trusted Services API ポータル に移動してサインインし、Intel® SGX および Intel® TDX Provisioning Certification Service にサブスクライブします。API キーは Manage Subscriptions ページに表示されます。
次のコマンドを実行して、
PCCS_USER_TOKEN変数を設定します。export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"$ export PCCS_USER_TOKEN="${PCCS_USER_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_USER_TOKEN- PCCS ユーザートークンを指定します。詳細は、Design Guide for Intel® SGX Provisioning Certificate Caching Service (Intel® SGX PCCS) を参照してください。
次のコマンドを実行して、
PCCS_ADMIN_TOKEN変数を設定します。export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"$ export PCCS_ADMIN_TOKEN="${PCCS_ADMIN_TOKEN:-mytoken}"Copy to Clipboard Copied! Toggle word wrap Toggle overflow PCCS_ADMIN_TOKEN- PCCS 管理トークンを指定します。詳細は、Design Guide for Intel® SGX Provisioning Certificate Caching Service (Intel® SGX PCCS) を参照してください。
次のコマンドを実行して、
PCCS_NODE変数の値をコントロールプレーンノードの名前に設定します。export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')$ export PCCS_NODE=$(oc get nodes \ -l 'node-role.kubernetes.io/control-plane=,node-role.kubernetes.io/master=' \ -o jsonpath='{.items[0].metadata.name}')Copy to Clipboard Copied! Toggle word wrap Toggle overflow クラスター全体のプロキシー変数を設定します。
クラスター全体のプロキシーを使用している場合は、次のコマンドを実行します。
export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"$ export CLUSTER_HTTPS_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.httpsProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロキシーを使用していない場合は、次のコマンドを実行します。
export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"$ export CLUSTER_NO_PROXY="$(oc get proxy/cluster \ -o jsonpath={.spec.noProxy})"Copy to Clipboard Copied! Toggle word wrap Toggle overflow
次のコマンドを実行して、PCCS ユーザートークンの SHA-512 ハッシュを生成します。
export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_USER_TOKEN_HASH=$(echo -n "$PCCS_USER_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、PCCS 管理トークンの SHA-512 ハッシュを生成します。
export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')
$ export PCCS_ADMIN_TOKEN_HASH=$(echo -n "$PCCS_ADMIN_TOKEN" | sha512sum | tr -d '[:space:]-')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、PCCS 証明書とキー用の一時ディレクトリーを作成します。
PCCS_PEM_CERT_PATH=$(mktemp -d)
$ PCCS_PEM_CERT_PATH=$(mktemp -d)Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、自己署名 PCCS 証明書と秘密鍵を生成します。
openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"
$ openssl req -x509 -sha256 -nodes -days 365 -newkey rsa:2048 \ -keyout $PCCS_PEM_CERT_PATH/private.pem \ -out $PCCS_PEM_CERT_PATH/certificate.pem \ -subj "/C=US/ST=Denial/L=Springfield/O=Dis/CN=www.example.com"Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
PCCS_PEMの値を Base64 でエンコードされた PCCS 秘密鍵に設定します。export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')
$ export PCCS_PEM=$(cat "$PCCS_PEM_CERT_PATH"/private.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、
PCCS_CERTの値を Base64 でエンコードされた PCCS 証明書に設定します。export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')
$ export PCCS_CERT=$(cat "$PCCS_PEM_CERT_PATH"/certificate.pem | base64 | tr -d '\n')Copy to Clipboard Copied! Toggle word wrap Toggle overflow 次のコマンドを実行して、PCCS の汎用シークレットを作成します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow