このページでは、Compute Engine の仮想マシン インスタンスに Spanner データベースへのアクセス権限を付与する方法について説明します。
Compute Engine に作成したインスタンスから Cloud Spanner API へのアクセスには、サービス アカウントを使用できます。サービス アカウントには、アプリケーションのデフォルト認証情報が用意されています。そのため、開発者個人のユーザー認証情報を使用するように各 Compute Engine インスタンスを構成する必要はありません。
次のいずれかの方法でインスタンスにサービス アカウントを構成します。
- 簡単な開発とテストを行う場合には、デフォルトのサービス アカウントを使用し、すべての Cloud API に対する完全アクセスができるようにインスタンスを構成します。
- 本番環境の場合には、Spanner データベースに対する読み取りと書き込みアクセス権があるサービス アカウントを作成し、インスタンスに適用します。
すべての Cloud API にアクセスできるようにインスタンスを構成する
インスタンスが Cloud Spanner API に迅速にアクセスできるようにするには、新しいインスタンスを作成するときに、デフォルトのサービス アカウントを使用し、すべての Cloud API に完全にアクセスできるように設定します。
Compute Engine VM インスタンスのページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックして、新しいインスタンスの作成を開始します。
[ID と API へのアクセス] セクションで、[すべての Cloud API に完全アクセス権を許可] をクリックします。
必要に応じて他のインスタンス設定の構成を行い、[作成] をクリックします。
これで、Compute Engine インスタンスのサービス アカウントが Cloud Spanner API にアクセスできるようになりました。クライアント ライブラリを使用して、Spanner データベースに読み取りまたは書き込みを実行できます。インスタンスは、デフォルトのサービス アカウントの認証情報を使用して、Cloud Spanner API の認証を行います。
サービス アカウントを使用するようにインスタンスを構成する
インスタンスが特定の API と役割にのみアクセスできるようにするには、Spanner データベースに対するアクセス権のみを持つサービス アカウントを作成し、このサービス アカウントをインスタンスに適用します。
開発者自身に代わって Spanner にアクセスするサービス アカウントを選択します。以下のいずれかの方法を選択します。
- 新しいサービス アカウントを作成します。
- インスタンスで使用できる既存のサービス アカウントを指定します。
サービス アカウントにロールを付与し、Spanner へのアクセスに必要な権限を設定します。Spanner に適用されるロールの一覧については、Spanner のアクセス制御をご覧ください。
Compute Engine VM インスタンスのページに移動します。
プロジェクトを選択し、[続行] をクリックします。
[インスタンスを作成] をクリックして、新しいインスタンスの作成を開始します。
[ID と API へのアクセス] セクションで、[サービス アカウント] のリストからサービス アカウントを選択します。
必要に応じて他のインスタンス設定の構成を行い、[作成] をクリックします。
これで、Compute Engine インスタンスのサービス アカウントが Cloud Spanner API にアクセスできるようになりました。クライアント ライブラリを使用して、Spanner データベースに読み取りまたは書き込みを実行できます。インスタンスがサービス アカウントの認証情報を使用して、Cloud Spanner API の認証を行います。
次のステップ
- インスタンスに接続し、クライアント ライブラリのチュートリアルに沿ってインスタンスから Spanner のデータの読み取りと書き込みを行う方法を学習します。
- Compute Engine のサービス アカウントの詳細を確認します。インスタンスで実行されるアプリケーションに IAM 役割と API アクセス スコープを付与する方法を学習します。
- 既存のインスタンスでサービス アカウントを変更する方法を学習します。
- Compute Engine インスタンスの作成方法と開始方法を学習します。