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

管理者は、ドメイン全体の委任を使用して、エンドユーザーの同意なしに、内部アプリやサードパーティ製アプリがユーザーの 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 サービス アカウントへのアクセス権を持つユーザーを把握する