デフォルトで安全な組織リソースを管理する

新規のお客様の場合、Google Cloud は次のシナリオでドメインの組織リソースを自動的にプロビジョニングします。

  • ドメインのユーザーが初めてログインしたとき。
  • ユーザーが、組織リソースが関連付けられていない請求先アカウントを作成したとき。

この組織リソースのデフォルト構成は無制限のアクセスを特徴としているため、インフラストラクチャはセキュリティ侵害による影響を受けやすくなります。たとえば、デフォルトのサービス アカウント キーの作成は、システムが侵害される可能性がある重大な脆弱性を持ちます。

デフォルトで安全な組織のポリシーを適用することにより、組織リソースの作成時に適用される組織のポリシーのバンドルが、安全でない体制に対処します。このような適用例としては、サービス アカウント キーの作成の無効化やサービス アカウント キーのアップロードの無効化が挙げられます。

既存のユーザーが組織を作成する場合、新しい組織リソースのセキュリティ体制は既存の組織リソースとは異なります。これは、デフォルトで安全な組織のポリシーが適用されているためです。この機能は段階的にデプロイされます。2024 年初頭に作成された組織にはこれらのポリシーの適用が適用されます。

管理者のユーザーに対しては、これらの組織ポリシーの適用が自動的に適用されるシナリオは次のとおりです。

  • Google Workspace または Cloud Identity アカウント: Google Workspace または Cloud Identity アカウントがある場合、ドメインに関連付けられた組織リソースが作成されます。デフォルトで安全な組織のポリシーが組織リソースに自動的に適用されます。
  • 請求先アカウントの作成: 作成した請求先アカウントが組織リソースに関連付けられていない場合、組織リソースが自動的に作成されます。デフォルトで安全な組織のポリシーが組織リソースに適用されます。このシナリオは、Google Cloud コンソールと gcloud CLI の両方で機能します。

必要な権限

Identity と Access Management のロール roles/orgpolicy.policyAdmin を使用すると、管理者は組織のポリシーを管理できるようになります。組織のポリシーの変更やオーバーライドを行うには、組織のポリシー管理者である必要があります。 ロールを付与するには、次のコマンドを実行します。

gcloud organizations add-iam-policy-binding ORGANIZATION --member=PRINCIPAL --role=ROLE

次のように置き換えます。

  • ORGANIZATION: 組織の一意の識別子。
  • PRINCIPAL: バインディングを追加するプリンシパル。形式は user|group|serviceAccount:email または domain:domain にする必要があります。例: user:222larabrown@gmail.com
  • ROLE: プリンシパルに付与するロール。事前定義ロールの完全なパスを使用します。この場合は、roles/orgpolicy.policyAdmin にします。

組織リソースに適用される組織のポリシー

次の表に、組織リソースの作成時に自動的に適用される組織のポリシーの制約を示します。

組織のポリシー名 組織のポリシーの制約 説明 適用による影響
サービス アカウント キー作成を無効にする iam.disableServiceAccountKeyCreation ユーザーがサービス アカウントに永続キーを作成できないようにします。 サービス アカウント認証情報が公開されるリスクを軽減できます。
サービス アカウント キーのアップロードを無効にする iam.disableServiceAccountKeyUpload サービス アカウントに外部公開鍵をアップロードできないようにします。 サービス アカウント認証情報が公開されるリスクを軽減できます。
デフォルトのサービス アカウントへの自動的なロール付与を無効にする iam.automaticIamGrantsForDefaultServiceAccounts デフォルトのサービス アカウントの作成時に、過剰な権限の IAM ロール Editor を受け取らないようにします。 Editor ロールを使用すると、サービス アカウントはほとんどの Google Cloud サービスのリソースを作成および削除できるため、サービス アカウントが不正使用された場合に脆弱性が発生します。
ドメイン別に ID を制限する iam.allowedPolicyMemberDomains リソース共有を、特定の組織リソースに属する ID に限定します。 組織リソースを公開してお客様自身以外のドメインを持つアクターがアクセスできる状態にしておくと、脆弱性が発生します。
ドメインごとに連絡先を制限する essentialcontacts.allowedContactDomains 重要な連絡先を制限して、選択したドメインの管理対象ユーザー ID のみがプラットフォーム通知を受信できるようにします。 別のドメインに属する不正な行為者が重要な連絡先として追加され、セキュリティ体制が侵害される可能性があります。
均一なバケットレベルのアクセス storage.uniformBucketLevelAccess Cloud Storage バケットがオブジェクトごとの ACL(IAM ポリシーとは別のシステム)を使用してアクセスを提供できないようにします。 アクセス管理と監査により一貫性を実現します。
デフォルトでゾーン DNS を使用する compute.setNewProjectDefaultToZonalDNSOnly アプリケーション デベロッパーが Compute Engine インスタンスのグローバル DNS 設定を選択できないよう制限します。 グローバル DNS 設定は、ゾーン DNS 設定よりもサービスの信頼性が低いものです。

組織のポリシーの適用を管理する

組織のポリシーの適用は、次の方法で管理できます。

組織のポリシーを一覧表示する

デフォルトで安全な組織のポリシーが組織に適用されているかどうかを確認するには、次のコマンドを使用します。

gcloud resource-manager org-policies list --organization=ORGANIZATION_ID

ORGANIZATION_ID は、組織の一意の識別子に置き換えます。

組織のポリシーを無効にする

組織のポリシーを無効化または削除するには、次のコマンドを実行します。

gcloud org-policies delete CONSTRAINT_NAME --organization=ORGANIZATION_ID

次のように置き換えます。

  • CONSTRAINT_NAME は、削除する組織ポリシーの制約の名前です。たとえば、iam.allowedPolicyMemberDomains です。
  • ORGANIZATION_ID はプロジェクトの一意の識別子です。

組織ポリシーの値を追加または更新する

組織のポリシーの値を追加または更新するには、値を YAML ファイルに保存する必要があります。このファイルの内容の例を以下に示します。

{
  "name": "organizations/ORG_ID/policies/CONSTRAINT_NAME",
  "spec": {
    "rules": [
      {
        "values": {
            "allowedValues": ["VALUE_A"]
        }
      }
    ]
  }
}

YAML ファイルにリストされているこれらの値を追加または更新するには、次のコマンドを実行します。

gcloud org-policies set-policy POLICY_FILE

POLICY_FILE は、組織のポリシーの値を含む YAML ファイルのパスに置き換えます。