このドキュメントは、承認済みの特権ワークロードのみを組織内のどこでも実行できるようにする ID とアカウント管理者を対象としています。次のページのコンセプトを理解しておく必要があります。
組織の特権ワークロード アドミッション コントロールの仕組み
デフォルトでは、GKE Autopilot はワークロードに対して一連のセキュリティ対策を適用します。これらの制約に違反するワークロードを実行する唯一の方法は、それらのワークロードの許可リストをインストールすることです。特定のソースから許可リストをインストールするには、そのソースからの許可リストを許可するようにクラスタを構成する必要があります。
デフォルトでは、 Google Cloud 組織では、プラットフォーム管理者が GKE パートナーと検証済みのオープンソース プロジェクトの許可リストを許可するようにクラスタを構成できます。組織に、特権ワークロードを明示的に既知のソースセットに制限するセキュリティ要件がある場合は、組織のポリシーを使用してデフォルトの動作を変更できます。
組織、フォルダ、プロジェクトの承認済み許可リスト ソースのリストを適用すると、プラットフォーム管理者は Autopilot クラスタまたは Standard クラスタの作成または更新時に、これらのソースのみを指定できます。承認されていないソースを指定してクラスタを作成または更新すると、オペレーションは失敗します。
構成する必要がある組織のポリシーは、ユースケースによって異なります。
特定の特権ワークロードのみを組織、フォルダ、プロジェクトで実行できるようにする:
Standard クラスタで Autopilot モードで特権ワークロードを実行できるようにする: 許可リストの組織のポリシーを構成する
始める前に
- Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
Enable the Resource Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.Enable the Resource Manager API, if it is not already enabled.
Roles required to enable APIs
To enable APIs, you need the
serviceusage.services.enablepermission. If you created the project, then you likely already have this permission through the Owner role (roles/owner). Otherwise, you can get this permission through the Service Usage Admin role (roles/serviceusage.serviceUsageAdmin). Learn how to grant roles.- チームが所有する特権ワークロードの許可リストがある場合は、Cloud Storage 内のその許可リストのパスをチームに提供してもらいます。
必要なロールと権限
組織のポリシーを管理するために必要な権限を取得するには、組織、フォルダ、またはプロジェクトに対する組織のポリシー管理者 (roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
許可リストの組織のポリシーを構成する
constraints/container.managed.autopilotPrivilegedAdmission 管理対象制約に基づいて組織のポリシーを作成または更新することで、組織、フォルダ、プロジェクトの許可リストの承認済みソースを制御できます。この組織のポリシーを適用すると、クラスタ管理者はポリシーで定義したソースからのみ許可リストをインストールできます。
これらの手順に加えて、Autopilot クラスタのみが環境で実行されるようにする組織のポリシーを適用することをおすすめします。環境に Standard クラスタがない場合、承認された特権ワークロードのみを実行できます。詳細については、Autopilot クラスタのみを許可するように組織のポリシーを構成するをご覧ください。
承認済みの特権ワークロードの許可リストの組織のポリシーを構成するには、次のいずれかのオプションを選択します。
コンソール
Google Cloud コンソールで、[組織のポリシー] ページに移動します。
制約の表で、
container.managed.autopilotPrivilegedAdmissionマネージド制約を見つけます。[アクション] > [ポリシーを編集] をクリックします。[ポリシーの編集] ページが開きます。
[ポリシーのソース] セクションで、[親のポリシーをオーバーライドする] を選択します。
[ルール] セクションで、[ルールを追加] をクリックします。
[適用] セクションで、[オン] を選択します。[パラメータ] セクションが表示されます。
GKE 承認済みの許可リストをインストールできるかどうかを制御するには、次の操作を行います。
- [allowAnyGKEPath] パラメータで、 [編集] をクリックします。[パラメータ値を編集] ペインが開きます。
- [値のタイプ] セクションで、[ユーザー定義] を選択します。
[ユーザー定義の値] セクションで、次のいずれかのオプションを選択します。
- True: 管理者は、
gke://で始まる任意のパスから許可リストを実行するようにクラスタを構成できます。これがデフォルト値です。 - False: 管理者は、組織のポリシーの
allowPathsパラメータで指定したパスからのみ許可リストを実行するようにクラスタを構成できます。allowPathsパラメータでパスを指定しない場合、クラスタはどのソースの許可リストも実行できません。
- True: 管理者は、
[保存] をクリックします。[パラメータ値の編集] ペインが閉じます。
インストール可能な特定の許可リストを定義する手順は次のとおりです。
- [allowPaths] パラメータで、 [編集] をクリックします。[パラメータ値を編集] ペインが開きます。
- [値のタイプ] セクションで、[ユーザー定義] を選択します。
- [ユーザー定義の値] セクションで、許可リストに登録するソースのパスを 1 つ以上指定します。指定できる内容の詳細については、許可リストのパスをご覧ください。
- [保存] をクリックします。[パラメータ値の編集] ペインが閉じます。
- [ルールを編集] セクションで、[完了] をクリックします。
省略可: 組織のポリシーの適用による影響をテストするには、[変更内容をテスト] をクリックします。詳細については、Policy Simulator で組織のポリシーの変更をテストするをご覧ください。
ドライラン モードでポリシーを適用するには、[ドライラン ポリシーを設定] をクリックします。
ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、[ポリシーを設定] をクリックして有効なポリシーを設定します。
組織のポリシーの変更が完全に適用されるまでには、最大で 15 分ほどかかることがあります。
gcloud
組織のポリシーを定義する YAML ファイルを作成します。
name: RESOURCE_TYPE/RESOURCE_ID/policies/container.managed.autopilotPrivilegedAdmission spec: rules: - enforce: true parameters: allowAnyGKEPath: ALLOW_GKE_PATHS allowPaths: - ALLOWLIST1_PATH - ALLOWLIST2_PATH次のように置き換えます。
RESOURCE_TYPE:Google Cloud リソースのタイプ。次のいずれかの値を指定する必要があります。organizationsfoldersprojects
RESOURCE_ID: 組織 ID、フォルダ ID、またはプロジェクト ID。ALLOW_GKE_PATHS: GKE で承認された許可リストを許可するかどうか。次のいずれかの値を指定します。True: GKE パートナー ワークロードまたは検証済みのオープンソース ワークロードを使用してクラスタ構成を許可します。これはデフォルト値です。False:allowPathsフィールドのパスのみを使用してクラスタ構成を許可します。
ALLOWLIST1_PATH、ALLOWLIST2_PATH: 許可リストのパス。指定できる内容の詳細については、許可リストのパスをご覧ください。
必要に応じて、タグで組織のポリシーに条件を設定するには、
rulesフィールドにconditionブロックを追加します。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できないのでご注意ください。詳細については、タグ付きの組織のポリシーの設定をご覧ください。ドライラン モードで組織のポリシーを設定するには、
gcloud org-policies set-policyコマンドで--update-maskフラグにdryRunSpec値を指定します。gcloud org-policies set-policy POLICY_FILEPATH \ --update-mask=dryRunSpecPOLICY_FILEPATHは、前の手順で作成した YAML ファイルのパスに置き換えます。(省略可)この組織のポリシーの適用による影響をテストするには、
gcloud policy-intelligence simulate org-policyコマンドを使用します。gcloud policy-intelligence simulate org-policy \ --organization=ORGANIZATION_ID \ --policy-path=POLICY_FILEPATHORGANIZATION_IDは、実際の組織 ID に置き換えます。ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、
gcloud org-policies set-policyコマンドの--update-maskフラグにspec値を指定して、有効なポリシーを設定します。gcloud org-policies set-policy POLICY_FILEPATH \ --update-mask=spec組織のポリシーの変更が完全に適用されるまでには、最大で 15 分ほどかかることがあります。
Autopilot クラスタのみを許可するように組織のポリシーを構成する
このセクションでは、Autopilot クラスタのみを許可する組織のポリシーを構成する方法について説明します。Standard クラスタはほとんどの特権ワークロードを実行できるため、許可リストの組織のポリシーを作成するだけでなく、このポリシーも構成することをおすすめします。Autopilot クラスタのみを許可すると、環境では許可した特権ワークロードのみが実行されます。このセクションの手順は省略可能です。
このポリシーを構成するには、次のいずれかのオプションを選択します。
コンソール
Autopilot クラスタの作成のみを許可するカスタム制約を作成します。
Google Cloud コンソールで、[組織のポリシー] ページに移動します。
[ カスタム制約] をクリックします。[カスタム制約を作成] ページが開きます。
制約の表示名と一意の ID を指定します。
[適用] セクションで、次の操作を行います。
- [リソースタイプ] リストで、[container.googleapis.com/Cluster] を選択します。
- [適用方法] リストで、[作成時に適用する] を選択します。
- [条件] セクションで、 [条件を編集] をクリックします。[条件を追加] ペインが開きます。
次の式を指定します。
resource.autopilot.enabled == true[保存] をクリックします。[条件を追加] ペインが閉じます。
[アクション] セクションで、[許可] を選択します。
[制約を作成] をクリックします。
制約を適用するカスタム組織ポリシーを作成します。
- 制約の表で、前の手順で作成したカスタム制約を見つけます。
- [アクション] > [ポリシーを編集] をクリックします。[ポリシーの編集] ページが開きます。
- [ポリシーのソース] セクションで、[親のポリシーをオーバーライドする] を選択します。
- [ルールの追加] をクリックします。
- [適用] セクションで、[オン] を選択します。
- 組織のポリシーの適用による影響をテストするには、[変更内容をテスト] をクリックします。詳細については、Policy Simulator で組織のポリシーの変更をテストするをご覧ください。
- ドライラン モードでポリシーを適用するには、[ドライラン ポリシーを設定] をクリックします。
- ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、[ポリシーを設定] をクリックして有効なポリシーを設定します。
組織のポリシーの変更が完全に適用されるまでには、最大で 15 分ほどかかることがあります。
gcloud
Autopilot クラスタの作成のみを許可するカスタム制約を作成します。
カスタム制約を定義する YAML ファイルを作成します。
name: organizations/ORGANIZATION_ID/customConstraints/CONSTRAINT_NAME resourceTypes: container.googleapis.com/Cluster methodTypes: - CREATE condition: resource.autopilot.enabled == true actionType: ALLOW displayName: "Allow only Autopilot clusters"次のように置き換えます。
ORGANIZATION_ID: 組織 ID。CONSTRAINT_NAME: 新しい制約の名前。
カスタム制約を設定します。
gcloud org-policies set-custom-constraint CONSTRAINT_FILEPATHCONSTRAINT_FILEPATHは、前の手順で作成した YAML ファイルのパスに置き換えます。
カスタム制約は、組織のポリシーで使用できます。
制約を適用するカスタム組織ポリシーを作成します。
組織のポリシーを定義する YAML ファイルを作成します。
name: RESOURCE_TYPE/RESOURCE_ID/policies/custom.CONSTRAINT_NAME spec: rules: - enforce: true次のように置き換えます。
RESOURCE_TYPE:Google Cloud リソースのタイプ。次のいずれかの値を指定する必要があります。organizationsfoldersprojects
RESOURCE_ID: 組織、フォルダ、プロジェクトの ID。
必要に応じて、タグで組織のポリシーに条件を設定するには、
rulesフィールドにconditionブロックを追加します。組織のポリシーに条件付きルールを追加する場合は、少なくとも 1 つは無条件のルールを追加する必要があります。そうしないとポリシーを保存できないのでご注意ください。詳細については、タグ付きの組織のポリシーの設定をご覧ください。ドライラン モードで組織のポリシーを設定するには、
gcloud org-policies set-policyコマンドで--update-maskフラグにdryRunSpec値を指定します。gcloud org-policies set-policy POLICY_FILEPATH \ --update-mask=dryRunSpecPOLICY_FILEPATHは、前の手順で作成した YAML ファイルのパスに置き換えます。この組織のポリシーの適用による影響をテストするには、
gcloud policy-intelligence simulate org-policyコマンドを使用します。gcloud policy-intelligence simulate org-policy \ --organization=ORGANIZATION_ID \ --policy-path=POLICY_FILEPATHORGANIZATION_IDは、実際の組織 ID に置き換えます。ドライラン モードで組織のポリシーが想定どおりに動作することを確認したら、
gcloud org-policies set-policyコマンドの--update-maskフラグにspec値を指定して、有効なポリシーを設定します。gcloud org-policies set-policy POLICY_FILEPATH \ --update-mask=spec組織のポリシーの変更が完全に適用されるまでには、最大で 15 分ほどかかることがあります。
次のステップ
- プラットフォーム管理者に Autopilot で特権ワークロードを実行するよう依頼します。