2.6.2.3. レガシーサービスアカウントトークンシークレットの作成
管理者は、レガシーサービスアカウントトークンシークレットを作成できます。これにより、API に対して認証する必要のあるアプリケーションにサービスアカウントトークンを配布できます。
レガシーサービスアカウントトークンシークレットを使用する代わりに、TokenRequest API を使用してバインドされたサービスアカウントトークンを取得することを推奨します。TokenRequest API を使用できず、読み取り可能な API オブジェクトで有効期限が切れていないトークンのセキュリティーエクスポージャーが許容できる場合にのみ、サービスアカウントトークンシークレットを作成する必要があります。
バインドされたサービスアカウントトークンは、次の理由により、サービスアカウントトークンのシークレットよりもセキュアです。
- バインドされたサービスアカウントトークンには有効期間が制限されています。
- バインドされたサービスアカウントトークンには対象ユーザーが含まれます。
- バインドされたサービスアカウントトークンは Pod またはシークレットにバインドでき、バインドされたオブジェクトが削除されるとバインドされたトークンは無効になります。
バインドされたサービスアカウントトークンを取得するために、ワークロードに projected ボリュームが自動的に注入されます。ワークロードに追加のサービスアカウントトークンが必要な場合は、ワークロードマニフェストに追加の projected ボリュームを追加してください。
詳細は、「ボリュームプロジェクションを使用したバインドされたサービスアカウントトークンの設定」を参照してください。
手順
コントロールプレーンノードの YAML ファイルに
Secretオブジェクトを作成します。Secretオブジェクトの例apiVersion: v1 kind: Secret metadata: name: secret-sa-sample annotations: kubernetes.io/service-account.name: "sa-name"1 type: kubernetes.io/service-account-token2 以下のコマンドを使用して
Secretオブジェクトを作成します。$ oc create -f <filename>.yamlPod でシークレットを使用するには、以下を実行します。
- 「シークレットの作成方法について」セクションで説明されているとおり、Pod のサービスアカウントを更新してシークレットを参照します。
-
「シークレットの作成方法について」で説明されているとおり、シークレットを環境変数またはファイル (
secretボリュームを使用) として使用する Pod を作成します。