既定で有効化されている組織ポリシー
はじめに
Google Cloudの組織を作成した際に、既定で有効化される組織ポリシーは、Google Cloudの公式ドキュメント「デフォルトで安全な組織リソースの管理 | Resource Manager Documentation | Google Cloud」に記載されています。
しかし、実際に組織を作成すると、上記の公式ドキュメントと乖離があることが分かりました。
本記事では、公式ドキュメントでは記載されていないが、実際の環境では有効化されている組織ポリシーについて記載します。
なお、本記事の内容は、2025年2月16日時点で作成されたGoogle Cloud環境に基づいています。
公式ドキュメントに記載されている組織ポリシー
Google Cloudの公式ドキュメントには、以下の8つのポリシーが既定で有効化されると明記されています。
組織ポリシー名 | 組織ポリシーID | 説明 |
---|---|---|
サービス アカウント キー作成を無効にする | constraints/iam.disableServiceAccountKeyCreation | 有効化すると、サービスアカウントキーが作成できなくなります。 |
サービス アカウント キーのアップロードを無効にする | constraints/iam.disableServiceAccountKeyUpload | 有効化すると、サービスアカウントキーのアップロードができなくなります。 |
デフォルトのサービス アカウントへの自動的なロール付与を無効にする | constraints/iam.automaticIamGrantsForDefaultServiceAccounts | 有効化すると、既定で作成されるサービスアカウントに対して自動でロールが付与されなくなります。 |
ドメイン別に ID を制限する | constraints/iam.allowedPolicyMemberDomains | 有効化すると、組織以外のドメインを持つアカウントにロールを付与することができなくなります。 |
ドメイン別に連絡先を制限する | constraints/essentialcontacts.allowedContactDomains | 有効化すると、組織以外のドメインを持つメールアドレスはエッセンシャルコンタクトの宛先に追加することはできなくなります。 |
均一なバケットレベルのアクセス | constraints/storage.uniformBucketLevelAccess | 有効化すると、ACLを使ったCloud Storageバケットへのアクセス制御ができなくなります。 |
デフォルトでゾーン DNS を使用する | constraints/compute.setNewProjectDefaultToZonalDNSOnly | 有効化すると、グローバルDNSゾーンは選択できなくなります。 |
IP アドレスの種類に基づいてプロトコル転送を制限する | constraints/compute.restrictProtocolForwardingCreationForTypes | 有効化すると、プロトコル転送にグローバルIPアドレスを指定できなくなります。 |
公式ドキュメントと乖離のある組織ポリシー
公式ドキュメントに明記されているが実環境では有効化されていない組織ポリシー
以下の組織ポリシーは、公式ドキュメントに有効化されると明記されていますが、実環境では有効化されていませんでした。
- constraints/compute.restrictProtocolForwardingCreationForTypes
これは、2024年8月15日以降に作成された一部の組織で有効化されている場合があると公式ドキュメントに明記されているため、有効化されていなくても問題は無いと判断します。
公式ドキュメントに明記されていないが実環境では有効化されている組織ポリシー
以下の組織ポリシーは、公式ドキュメントに明記されていませんが、実環境では有効化されていました。
組織ポリシー名 | 組織ポリシーID | 説明 |
---|---|---|
OAuth 2.0 アクセス トークンの存続期間を最大 12 時間延長することを許可する | constraints/iam.allowServiceAccountCredentialLifetimeExtension | サービスアカウントの認証情報の有効期限延長は許可されていません。 |
リソースのエクスポートが許可されている宛先 | constraints/resourcemanager.allowedExportDestinations | サービスを他の組織にエクスポートすることは許可されていません。 |
リソースのインポートを許可されている送信元 | constraints/resourcemanager.allowedImportSources | 他の組織からサービスをインポートすることは許可されていません。 |
組織間の移動には有効なサービスの許可リストが必要 | constraints/resourcemanager.allowEnabledServicesForExport | すべてのサービスは他の組織にエクスポートすることが許可されていません。 |
マーケットプレイス サービスでのアクセスを制限する | constraints/commerceorggovernance.marketplaceServices | マーケットプレイスサービスは利用できません。 |
ランタイム デプロイの除外(App Engine) | constraints/appengine.runtimeDeploymentExemption | App Engine スタンダード環境のレガシーランタイムを選択することはできません。 |
サービス アカウント キーの漏洩レスポンス | constraints/iam.serviceAccountKeyExposureResponse | サービスアカウントキーの漏洩を検知すると、サービスアカウントキーは自動的に無効化されます。 |
共有予約オーナー プロジェクト | constraints/compute.sharedReservationsOwnerProjects | 共有予約(複数のプロジェクトでリソースを共有して予約する)は許可されていません。 |
デフォルトで Compute Engine サービス アカウントを使用する(Cloud Build) | constraints/cloudbuild.useComputeServiceAccount | Cloud BuildでCompute Engineサービスアカウントを使用するかどうかを制限します。 |
デフォルトのサービス アカウント作成を無効にする(Cloud Build) | constraints/cloudbuild.disableCreateDefaultServiceAccount | Cloud Buildでのデフォルトサービスアカウントの作成を禁止します。 |
デフォルトのサービス アカウントを使用する(Cloud Build) | constraints/cloudbuild.useBuildServiceAccount | Cloud Buildでビルドサービスアカウントを使用するかどうかを制限します。 |
プロジェクト間サービス アカウントの使用の無効化 | constraints/iam.disableCrossProjectServiceAccountUsage | プロジェクトが異なるサービスアカウントを利用することができなくなります。 |
constraints/iam.disableCrossProjectServiceAccountUsageは、組織スコープではなく、プロジェクトスコープにのみ割り当てられます。
なお、これらの組織ポリシーは、gcloud resource-manager org-policies list --organization=<ORG_ID>
では出力されません。
まとめ
Google Cloudの組織で既定で有効化されている組織ポリシーは、公式ドキュメントに記載されているものと乖離がある場合があることが分かりました。
特に、公式ドキュメントに明記されていないにも関わらず、実環境では有効化されている組織ポリシーは、gcloud
コマンドでも出力されないため、有効化されている正しい組織ポリシーを確認する際は、Google Cloudコンソールから確認するのが良さそうです。
Discussion