6.14.3. GCP PD CSI Driver Operator 使用時の権限削減
デフォルトのインストールでは、Google Cloud Platform (GCP) の永続ディスク (PD)Container Storage Interface (CSI) ドライバーが、Google Cloud プロジェクト内の任意のサービスアカウントになりすますことができます。Google Cloud プロジェクト内の GCP PD CSI ドライバーサービスアカウントに付与される権限の範囲を、必要なノードサービスアカウントのみに絞り込むことができます。
権限を制限するには、コントロールプレーンとコンピュートノードのサービスアカウントに iam.serviceAccountUser ロールを付与し、その後、プロジェクト全体のサービスアカウントから iam.serviceAccountUser ロールを削除して、権限の範囲を縮小します。
権限の制限は、Workload Identity Federation (WIF) を使用している GCP クラスターにのみ適用されます。
手順
以下の Bash コマンドを実行して、ノードサービスアカウントにスコープ付きの
iam.serviceAccountUserロールを付与します。gcloud iam service-accounts add-iam-policy-binding "${MASTER_NODE_SA}" --project="${GOOGLE_PROJECT_ID}" --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" --role="roles/iam.serviceAccountUser" --condition=None gcloud iam service-accounts add-iam-policy-binding "${WORKER_NODE_SA}" --project="${GOOGLE_PROJECT_ID}" --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" --role="roles/iam.serviceAccountUser" --condition=None-
GOOGLE_PROJECT_ID:Google Cloud プロジェクトの一意の ID。 -
SERVICE_ACCOUNT_EMAIL: 新しい権限が付与されるメンバー (個人またはサービスアカウント) のメールアドレス。サービスアカウントを見つけるには、WIF クラスターでは、クラスター名に基づいて CSI ドライバー用のデフォルトのサービスアカウントが GCP 上に存在します。たとえば、${CLUSTER_NAME}-openshift-gcp-pd-csi-* です。 -
MASTER_NODE_SA: クラスターのマスターノードで使用されるサービスアカウントのメールアドレス。 -
WORKER_NODE_SA: クラスターのワーカーノードが使用するサービスアカウントのメールアドレス。
-
以下の Bash コマンドを実行して、インストールプログラムによって作成されたバインディングからプロジェクトレベルの
iam.serviceAccountUserロールを削除します。gcloud projects remove-iam-policy-binding "${GOOGLE_PROJECT_ID}" --member="serviceAccount:${SERVICE_ACCOUNT_EMAIL}" --role="roles/iam.serviceAccountUser" --condition=None-
SERVICE_ACCOUNT_EMAIL: 権限を失ったアカウントのメールアドレス。たとえば、my- アプリケーション -sa@my-project.iam.gserviceaccount.com のようになります。サービスアカウントを見つけるには、WIF クラスターでは、クラスター名に基づいて CSI ドライバー用のデフォルトのサービスアカウントが GCP 上に存在します。たとえば、${CLUSTER_NAME}-openshift-gcp-pd-csi-* です。 -
GOOGLE_PROJECT_ID: この現象が発生している Google Cloud プロジェクトの一意の ID。たとえば、prod-data-789。
-