カスタム組織ポリシーを使用する

このページでは、組織ポリシー サービスのカスタム制約を使用して、次の Google Cloud リソースに対する特定のオペレーションを制限する方法について説明します。

  • clouddeploy.googleapis.com/Automation
  • clouddeploy.googleapis.com/CustomTargetType
  • clouddeploy.googleapis.com/DeliveryPipeline
  • clouddeploy.googleapis.com/DeployPolicy
  • clouddeploy.googleapis.com/Release
  • clouddeploy.googleapis.com/Rollout
  • clouddeploy.googleapis.com/Target

組織のポリシーの詳細については、カスタムの組織のポリシーをご覧ください。

組織のポリシーと制約について

Google Cloud 組織のポリシー サービスを使用すると、組織のリソースをプログラマティックに一元管理できます。組織のポリシー管理者は組織のポリシーを定義できます。組織のポリシーは、Google Cloud リソース階層内のGoogle Cloud リソースやそれらのリソースの子孫に適用される、制約と呼ばれる一連の制限です。組織のポリシーは、組織レベル、フォルダレベル、またはプロジェクト レベルで適用できます。

組織のポリシーを利用することで、あらかじめ用意されたマネージド制約をさまざまな Google Cloud サービスに適用できます。ただし、組織のポリシーで制限されている特定の項目をより細かくカスタマイズして制御したい場合は、カスタム制約を作成して、それを組織のポリシーで使うこともできます。

ポリシーの継承

デフォルトでは、組織のポリシーは、そのポリシーを適用したリソースの子孫に継承されます。たとえば、フォルダにポリシーを適用した場合、 Google Cloud はそのフォルダ内のすべてのプロジェクトにそのポリシーを適用します。この動作の詳細と変更方法については、階層評価ルールをご覧ください。

始める前に

  1. Google Cloud アカウントにログインします。 Google Cloudを初めて使用する場合は、 アカウントを作成して、実際のシナリオでの Google プロダクトのパフォーマンスを評価してください。新規のお客様には、ワークロードの実行、テスト、デプロイができる無料クレジット $300 分を差し上げます。
  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Verify that billing is enabled for your Google Cloud project.

  4. Google Cloud CLI をインストールします。

  5. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  6. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator role (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Verify that billing is enabled for your Google Cloud project.

  9. Google Cloud CLI をインストールします。

  10. 外部 ID プロバイダ(IdP)を使用している場合は、まず連携 ID を使用して gcloud CLI にログインする必要があります。

  11. gcloud CLI を初期化するには、次のコマンドを実行します。

    gcloud init
  12. 組織 ID を確認します。

必要なロール

カスタムの組織のポリシーを管理するために必要な権限を取得するには、組織のリソースに対する組織のポリシー管理者 roles/orgpolicy.policyAdmin)の IAM ロールを付与するよう管理者に依頼してください。ロールの付与については、プロジェクト、フォルダ、組織に対するアクセス権の管理をご覧ください。

必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。

Cloud Deploy でサポートされているリソース

次の表に、カスタム制約で参照できる Cloud Deploy リソースを示します。

リソース フィールド
clouddeploy.googleapis.com/Automation resource.annotations
resource.description
resource.rules.advanceRolloutRule.id
resource.rules.advanceRolloutRule.sourcePhases
resource.rules.advanceRolloutRule.wait
resource.rules.promoteReleaseRule.destinationPhase
resource.rules.promoteReleaseRule.destinationTargetId
resource.rules.promoteReleaseRule.id
resource.rules.promoteReleaseRule.wait
resource.rules.repairRolloutRule.id
resource.rules.repairRolloutRule.jobs
resource.rules.repairRolloutRule.phases
resource.rules.repairRolloutRule.repairPhases.retry.attempts
resource.rules.repairRolloutRule.repairPhases.retry.backoffMode
resource.rules.repairRolloutRule.repairPhases.retry.wait
resource.rules.repairRolloutRule.repairPhases.rollback.destinationPhase
resource.rules.repairRolloutRule.repairPhases.rollback.disableRollbackIfRolloutPending
resource.rules.timedPromoteReleaseRule.destinationPhase
resource.rules.timedPromoteReleaseRule.destinationTargetId
resource.rules.timedPromoteReleaseRule.id
resource.rules.timedPromoteReleaseRule.schedule
resource.rules.timedPromoteReleaseRule.timeZone
resource.selector.targets.id
resource.serviceAccount
resource.suspended
clouddeploy.googleapis.com/CustomTargetType resource.annotations
resource.customActions.deployAction
resource.customActions.includeSkaffoldModules.configs
resource.customActions.includeSkaffoldModules.git.path
resource.customActions.includeSkaffoldModules.git.ref
resource.customActions.includeSkaffoldModules.git.repo
resource.customActions.includeSkaffoldModules.googleCloudBuildRepo.path
resource.customActions.includeSkaffoldModules.googleCloudBuildRepo.ref
resource.customActions.includeSkaffoldModules.googleCloudBuildRepo.repository
resource.customActions.includeSkaffoldModules.googleCloudStorage.path
resource.customActions.includeSkaffoldModules.googleCloudStorage.source
resource.customActions.renderAction
resource.description
resource.name
clouddeploy.googleapis.com/DeliveryPipeline resource.annotations
resource.description
resource.name
resource.serialPipeline.stages.deployParameters.matchTargetLabels
resource.serialPipeline.stages.deployParameters.values
resource.serialPipeline.stages.profiles
resource.serialPipeline.stages.strategy.canary.canaryDeployment.percentages
resource.serialPipeline.stages.strategy.canary.canaryDeployment.postdeploy.actions
resource.serialPipeline.stages.strategy.canary.canaryDeployment.predeploy.actions
resource.serialPipeline.stages.strategy.canary.canaryDeployment.verify
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.percentage
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.phaseId
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.postdeploy.actions
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.predeploy.actions
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.profiles
resource.serialPipeline.stages.strategy.canary.customCanaryDeployment.phaseConfigs.verify
resource.serialPipeline.stages.strategy.canary.runtimeConfig.cloudRun.automaticTrafficControl
resource.serialPipeline.stages.strategy.canary.runtimeConfig.cloudRun.canaryRevisionTags
resource.serialPipeline.stages.strategy.canary.runtimeConfig.cloudRun.priorRevisionTags
resource.serialPipeline.stages.strategy.canary.runtimeConfig.cloudRun.stableRevisionTags
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.deployment
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.httpRoute
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.podSelectorLabel
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.routeDestinations.destinationIds
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.routeDestinations.propagateService
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.routeUpdateWaitTime
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.service
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.gatewayServiceMesh.stableCutbackDuration
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.serviceNetworking.deployment
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.serviceNetworking.disablePodOverprovisioning
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.serviceNetworking.podSelectorLabel
resource.serialPipeline.stages.strategy.canary.runtimeConfig.kubernetes.serviceNetworking.service
resource.serialPipeline.stages.strategy.standard.postdeploy.actions
resource.serialPipeline.stages.strategy.standard.predeploy.actions
resource.serialPipeline.stages.strategy.standard.verify
resource.serialPipeline.stages.targetId
resource.suspended
clouddeploy.googleapis.com/DeployPolicy resource.annotations
resource.description
resource.rules.rolloutRestriction.actions
resource.rules.rolloutRestriction.id
resource.rules.rolloutRestriction.invokers
resource.rules.rolloutRestriction.timeWindows.oneTimeWindows.endDate