認証の基本

Google Cloud API とサービスを操作する前に、自分が誰であるかを証明する必要があります。この身元確認のプロセスを「認証」と呼びます。

Google Cloudに対して認証を行うには、ID の証拠として認証情報を提供する必要があります。たとえば、サービスを使用するには、パスワードやワンタイム コードなどの認証情報を使用して認証を行う必要があります。

Google Cloud は、認証済みユーザーをプリンシパルとして参照します。 Google Cloud プロジェクトやストレージ バケットなどのリソースにアクセスしようとすると、 Google Cloudは、リクエストされたリソースに対するプリンシパルのアクセスレベルを確認します。このプロセスは認可と呼ばれ、Identity and Access Management(IAM)と呼ばれるシステムによって処理されます。

これらのコンセプトは、ユーザーに代わって自動タスクを実行するコード(ワークロード)にも適用されます。ワークロードは、ID を証明してプリンシパルとして認証するための認証情報を提供する必要があります。その後、 Google Cloud は、ワークロードがリクエストしたリソースに対するアクセスレベルを判断できます。

プリンシパルのタイプ

認証できるプリンシパルにはさまざまな種類があります。タスクの異なるステージや、異なる開発環境で、異なるプリンシパル タイプを使用することもできます。

主なプリンシパル タイプと、認証に必要な認証情報は次のとおりです。

  • ユーザー アカウント: 偶発的な管理タスク、 Google Cloud サービスの非プログラムによる構成、テスト、実験、オブザーバビリティなど、人間がインタラクティブな作業を行うための Google アカウントです。

    パスワードやワンタイム コードなどのユーザー認証情報を使用して、ユーザー アカウントとして認証します。

  • サービス アカウント: ワークロードがサービスやリソースにアクセスするために使用できる、 Google Cloud 内部のアカウントです。通常、サービス アカウントとして直接認証することはありません。代わりに、サービス アカウントを Compute Engine VM などのリソースにアタッチするか、サービス アカウントの権限借用を使用します。

    ほとんどのシナリオでは、有効期間の短いサービス アカウントの認証情報を使用してサービス アカウントを認証することをおすすめします。

  • フェデレーション ID: 外部 ID プロバイダのユーザー アカウントまたはサービス アカウントを参照する ID です。 Google Cloudでサポートされているフェデレーション ID には、次の 2 種類があります。

Google Cloudでサポートされているこれらのプリンシパル タイプとその他のプリンシパル タイプの詳細については、プリンシパル タイプをご覧ください。

認証用に Google Cloud 組織を構成する

Google Cloud 組織の認証を設定する際に、既存のシステムとワークフローを Google Cloudに統合する必要がある場合があります。

  • 使用する既存の ID プロバイダがある場合は、Workforce Identity 連携を設定する必要があります。

  • Google Cloud リソースへのアクセスを必要とするワークロードが Google Cloud の外部で実行されている場合は、Workload Identity 連携を設定する必要があります。

Google Cloud環境のセキュリティを強化するために、次のことも行うことをおすすめします。

ユーザーとワークロードを認証する

Google Cloud に対する認証方法は、使用している API とサービス、およびそれらの API とサービスを操作する方法によって異なります。

人間を認証する

偶発的な管理タスク、リソースの設定、構成の変更、テスト、ログの閲覧などの手動の対話型作業を行う場合は、ユーザー アカウントの認証情報を使用して認証します。

コンソール

Google Cloud コンソールでのインタラクティブな作業では、ユーザー認証情報を使用してウェブ インターフェースにログインすることで認証を行います。

Google Cloud コンソールに移動

Google Cloud コンソール セッションと同じ認証情報が Cloud Shell で使用されます。ここで、gcloud CLI にアクセスできます。

gcloud

ローカル デバイスに gcloud CLI をインストールしたら、ターミナルで次のコマンドを実行して、ユーザー認証情報を使用して Google Cloud の認証を行うことができます。

gcloud auth login

認証後、後続の gcloud コマンドは、ログインしたプリンシパルを使用してリクエストを行います。

Workforce Identity 連携認証情報、Workload Identity 連携認証情報、またはサービス アカウント キーを使用して認証する場合は、gcloud CLI を使用して認証するをご覧ください。

ワークロードを認証する

ローカル デバイス、Google Cloud、オンプレミス、別のクラウドでコードを開発して実行する場合でも、ワークロードを認証する最も柔軟で移植性の高い方法は、アプリケーションのデフォルト認証情報(ADC)と呼ばれるメカニズムを使用して認証情報を提供することです。

ADC を実装するライブラリ(Google Cloud クライアント ライブラリなど)は、実行される環境内の既知の場所で認証情報を確認します。つまり、コードの実行場所を変更しても、コード自体を変更する必要はなく、その環境で使用される認証情報のみを変更すればよいということです。

たとえば、ローカルで開発する場合、ADC が認証にユーザー認証情報を使用するように環境を設定できます。コードが本番環境に対応したら、変更せずに Compute Engine VM インスタンスにデプロイし、代わりに有効期間の短いサービス アカウント認証情報を使用して認証を行うように環境を設定できます。

次のシナリオでは、ADC を使用して認証することはできません。

  • gcloud CLI を認証する場合。

  • API キーを使用する場合。API キーは特定の API でのみ使用できます。

特定の環境で ADC を設定する方法については、アプリケーションのデフォルト認証情報を設定するをご覧ください。

次のステップ