Google Cloud には、本番環境でワークロードの ID として機能するサービス アカウントが用意されています。ワークロードへのアクセス権を直接付与するのではなく、サービス アカウントにアクセス権を付与し、ワークロードでサービス アカウントを ID として使用します。
ワークロードの ID としてサービス アカウントを構成する方法はいくつかあります。使用できる方法は、ワークロードが実行されている場所によって異なります。
Google Cloud 上のワークロード
Google Cloud でワークロードを実行している場合は、次の方法でワークロードの ID を構成できます。
- 接続されたサービス アカウント
- マネージド ワークロード ID(Compute Engine で実行されるワークロードのみ)
- Workload Identity(Google Kubernetes Engine で実行されるワークロードのみ)
- サービス アカウント キー
接続されたサービス アカウント
一部の Google Cloud リソースでは、リソースがデフォルトの ID として使用するユーザー管理のサービス アカウントを指定できます。このプロセスは、サービス アカウントをリソースに「接続する」、またはサービス アカウントとリソースを「関連付ける」といいます。
リソースで実行されているコードが Google Cloud のサービスとリソースにアクセスすると、そのリソースに関連付けられているサービス アカウントが ID として使用されます。たとえば、サービス アカウントを Compute Engine インスタンスに接続し、そのインスタンスのアプリケーションがクライアント ライブラリを使用して Google Cloud APIs を呼び出す場合、これらのアプリケーションは、認証と認可に接続されたサービス アカウントを自動的に使用します。
ほとんどの場合、リソースの作成時にリソース アカウントをサービス アカウントに関連付ける必要があります。リソースの作成後に、リソースに関連付けられているサービス アカウントを変更することはできません。Compute Engine インスタンスは例外です。必要に応じて、インスタンスに接続するサービス アカウントを変更できます。
詳細については、サービス アカウントをリソースに接続するをご覧ください。
マネージド ワークロード ID
マネージド ワークロード ID を使用すると、厳密に証明された ID を Compute Engine ワークロードにバインドできます。マネージド ワークロード ID は、mTLS を使用してワークロード間の認証を行うことができますが、Google Cloud APIs に対する認証には使用できません。
マネージド ワークロード ID の詳細については、マネージド ワークロード ID の概要をご覧ください。
Compute Engine ワークロードでマネージド ワークロード ID を使用する方法については、mTLS を使用してワークロード間で認証を行うをご覧ください。
GKE Workload Identity
GKE で実行されるワークロードの場合、Workload Identity では、GKE クラスタ内の Kubernetes サービス アカウントが IAM サービス アカウントとして機能します。構成された Kubernetes サービス アカウントを使用する Pod は、Google Cloud APIs にアクセスするときに IAM サービス アカウントを ID として自動的に使用します。Workload Identity を使用すると、クラスタ内のアプリケーションごとに詳細に設定した個別の ID と認可を割り当てることができます。
GKE Workload Identity の詳細については、GKE 用 Workload Identity 連携をご覧ください。
サービス アカウント キー
サービス アカウント キーを使用すると、ワークロードでサービス アカウントとして認証を行い、サービス アカウントの ID で認可を行うことができます。サービス アカウント キーが正しく管理されていない場合は、セキュリティ リスクが発生します。可能であれば、サービス アカウント キーよりも安全な代替手段を選択してください。サービス アカウント キーで認証する必要がある場合は、秘密鍵のセキュリティと、サービス アカウント キーを管理するためのベスト プラクティスで説明されているその他の操作は、ユーザーの責任で実施してください。サービス アカウント キーを作成できない場合は、組織でサービス アカウント キーの作成が無効になっている可能性があります。詳細については、デフォルトで安全な組織リソースの管理をご覧ください。
外部ワークロード
Google Cloud の外部でワークロードを実行している場合は、次の方法でワークロードの ID を構成できます。
- Workload Identity 連携
- サービス アカウント キー
Workload Identity 連携
Workload Identity 連携を使用すると、AWS や Azure Active Directory などの外部 ID プロバイダの認証情報を使用して有効期間の短い認証情報を生成できます。ワークロードは、この認証情報を使用して、サービス アカウントの権限を一時的に権限できます。これにより、ワークロードはサービス アカウントを ID として Google Cloud リソースにアクセスできるようになります。
外部ワークロードの ID を構成する場合は、Workload Identity 連携を使用することをおすすめします。
Workload Identity 連携の詳細については、Workload Identity 連携をご覧ください。
サービス アカウント キー
サービス アカウント キーを使用すると、ワークロードでサービス アカウントとして認証を行い、サービス アカウントの ID で認可を行うことができます。サービス アカウント キーが正しく管理されていない場合は、セキュリティ リスクが発生します。可能であれば、サービス アカウント キーよりも安全な代替手段を選択してください。サービス アカウント キーで認証する必要がある場合は、秘密鍵のセキュリティと、サービス アカウント キーを管理するためのベスト プラクティスで説明されているその他の操作は、ユーザーの責任で実施してください。サービス アカウント キーを作成できない場合は、組織でサービス アカウント キーの作成が無効になっている可能性があります。詳細については、デフォルトで安全な組織リソースの管理をご覧ください。
ローカルでの開発
ローカル環境で開発している場合は、認証と認可にユーザー認証情報を使用するようにワークロードを構成できます。詳細については、認証ドキュメントのローカル開発環境をご覧ください。
次のステップ
- サービス アカウントを使用して認証を設定する方法を学習する。
- ローカル開発環境で認証を設定する方法を学習する。
- サービス アカウントにリソースへのアクセス権を付与する方法を学習する。