ドメイン全体の委任のベスト プラクティス

管理者はドメイン全体の委任を使用して、内部アプリとサードパーティ製アプリがエンドユーザーの同意を得ずにユーザーの Google Workspace データにアクセスできるようにすることができます。これを行うには、Google Cloud コンソールでサービス アカウントを作成し、Google 管理コンソールでドメイン全体の権限をアカウントに委任します。 管理コンソールで、サービス アカウントに限定的な API スコープを提供することもできます。ドメイン全体の委任について詳しくは、API アクセスをドメイン全体の委任で制御するをご覧ください。

サービス アカウントの管理と保護

Identity and Access Management(IAM)には、サービス アカウントを使用してアクセスを制限し、権限昇格や否認の脅威から保護するためのガイドラインが用意されています。ガイドラインを確認するには、サービスアカウントの使用に関する ベスト プラクティス をご覧ください

このガイドのすべての推奨事項は、ドメイン全体の委任を使用するサービス アカウントの保護に適用されますが、特に重要なプラクティスは次のとおりです。

代わりに、サービス アカウントへの直接アクセスまたは OAuth 同意を使用してください

サービス アカウントで直接タスクを完了できる場合、または OAuth 同意を使用してタスクを完了できる場合は、ドメイン全体の委任の使用を避けてください。

ドメイン全体の委任の使用が不可避である場合は、サービス アカウントで使用できる一連の OAuth スコープを制限します。OAuth スコープによってサービス アカウントがなりすませるユーザーが制限されることはありませんが、サービス アカウントがアクセスできるユーザーデータの種類は制限されます。

ドメイン全体の委任を使用しないようにする

サービス アカウント キーの作成とアップロードを制限する

組織のポリシーを使用して、ドメイン全体の委任を使用するサービス アカウントのキーの作成とアップロードを制限します。これにより、サービス アカウント キーによるサービス アカウントの権限借用が制限されます。

ユーザーがサービス アカウント キーを作成またはアップロードすることを許可しない

デフォルトのサービス アカウントに対するロールの自動付与を無効にする

デフォルトで作成されるサービス アカウントには編集者ロールが付与され、アカウントは Google Cloud プロジェクト内のすべてのリソースを読み取り、変更できます。デフォルトのサービス アカウントに対するロールの自動付与を無効にすると、編集者のロールは自動的には付与されず、悪意のあるユーザーによって簡単に悪用されないようにすることができます。

デフォルトのサービス アカウントへの自動的なロール付与を使用しない

ラテラル ムーブメントを制限する

ラテラル ムーブメントとは、あるプロジェクトのサービス アカウントが別のプロジェクトのサービス アカウントの権限を借用することです。これにより、リソースへの意図しないアクセスが発生する可能性があります。「ラテラル ムーブメントの分析情報」を使用して、権限借用によるラテラル ムーブメントを検出して制限します。

ラテラル ムーブメントの分析情報を使用してラテラル ムーブメントを制限する

ドメイン全体の委任を使用するサービス アカウントへのアクセスを制限する

サービス アカウントにユーザーよりも多くの権限が付与されている場合は、ユーザーにサービス アカウントの許可ポリシーの変更を許可しないでください。IAM のロールを使用して、ドメイン全体の委任が付与されたサービス アカウントへのアクセスを制限します。

ユーザーが自身よりも高い権限を付与されているサービス アカウントの許可ポリシーを変更できないようにする

内部関係者によるリスクからサービス アカウントを保護する

ドメイン全体の委任は、アプリがユーザーの同意を得ずに Google Workspace データにアクセスする必要がある重要なビジネスケースでのみ使用してください。ユーザーの同意を得る OAuth などの代替手段を試すか、Marketplace アプリを使用してください。詳しくは、Google Workspace Marketplace をご覧ください。

ドメイン全体の委任権限を持つサービス アカウントを内部関係者によるリスクから保護するには、次のベスト プラクティスに従ってください。

必要な権限のみを付与する

ドメイン全体の委任を使用するサービス アカウントには、目的の機能を実行するために必要な権限のみが付与されていることを確認します。不要な OAuth スコープへのアクセス権を付与しないでください。

専用の Google Cloud プロジェクトでサービス アカウントをホストする

ドメイン全体の委任を使用するサービス アカウントが、専用の Google Cloud プロジェクトでホストされていることを確認します。これらのプロジェクトを他のビジネスニーズに使用しないでください。

サービス アカウント キーを使用しない

ドメイン全体の委任にサービス アカウント キーを使用する必要はありません。代わりに、signJwt API を使用します。

ドメイン全体の委任にサービス アカウント キーを使用しない

ドメイン全体の委任を使用するプロジェクトへのアクセスを制限する

ドメイン全体の委任を設定して、Google Cloud プロジェクトの編集権限を持つユーザーの数を最小限に抑えます。Cloud Asset Inventory API を使用すると、サービス アカウントにアクセスできるユーザーを確認できます。たとえば、Cloud Shell を使用して次のコマンドを実行します。

gcloud asset get-effective-iam-policy
--scope=organizations/ORG_ID
--names=//iam.googleapis.com/projects/PROJECT_ID/serviceAccounts/SERVICE_ACCOUNT_ID
  • ORG_ID: Google Cloud 組織 ID。詳細
  • PROJECT_ID: サービス アカウントが存在する Google Cloud プロジェクトの ID。詳細
  • SERVICE_ACCOUNT_ID: サービス アカウントの ID。ID は、管理コンソールのドメイン全体の委任ページの [クライアント ID] またはサービス アカウントのメールアドレスに表示されます。詳細

iam.serviceAccountTokenCreatoriam.serviceAccountKeyAdmin などの権限またはロールを確認して、サービス アカウントに対する直接権限または継承された権限を持つユーザーを把握します。

Google Cloud サービス アカウントにアクセスできるユーザーを把握する