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

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

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

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

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

既存のユーザーが組織を作成すると、新しい組織リソースのセキュリティ ポスチャーが既存の組織リソースと異なる場合があります。デフォルトで保護されている組織のポリシーが、2024 年 5 月 3 日以降に作成されたすべての組織に適用されます。2024 年 2 月から 2024 年 4 月の間に作成された組織の一部には、これらのデフォルト ポリシーの適用が設定されている場合もあります。組織に適用されている組織のポリシーを表示するには、組織のポリシーを表示するをご覧ください。

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

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

必要な権限

Identity and 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 になります。

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

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

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

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

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

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

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

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 ファイルのパスに置き換えます。