Cloud APIs を使用して、コードから Google Cloud のプロダクトおよびサービスにアクセスできます。これらの Cloud APIs では、クライアント ライブラリ経由で呼び出すことができる、シンプルな JSON REST インターフェースが公開されています。
このドキュメントでは、Cloud APIs を有効にし、Cloud クライアント ライブラリをプロジェクトに追加する方法について説明します。
Cloud APIs を見る
IDE 内で利用可能なすべての Google Cloud APIs を確認する手順は次のとおりです。
[ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
[Google Cloud APIs の管理] ウィンドウでは、カテゴリ別に Cloud APIs がグループ化されます。API の検索 の検索バーを使用して特定の API を見つけることもできます。
[API] をクリックすると、ステータス、対応するクライアント ライブラリの言語に固有のインストール手順、関連ドキュメントなどの詳細が表示されます。
Cloud APIs を有効にする
API の詳細ページを使用してプロジェクトの Cloud API を有効にするには、次の手順を行います。
[Cloud API] の詳細ビューで、Cloud API を有効にする Google Cloud プロジェクトを選択します。
[API を有効にする] をクリックします。
API を有効にすると、変更を確認するメッセージが表示されます。
Cloud クライアント ライブラリを追加する
IntelliJ でプロジェクトにライブラリを追加する手順は次のとおりです。
Java Maven プロジェクトの場合
- [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
- [Google Cloud クライアント ライブラリ](ほとんどのプロジェクトで推奨)または [Java Spring Google Cloud](プロジェクトで Java Spring を使用する場合に推奨)から希望のライブラリ タイプを選択します。
- 必要に応じて、IDE のクライアント ライブラリをインストールするで残りの手順を行います。
- 完了したら、[閉じる] をクリックします。
[Google Cloud APIs の管理] ダイアログの [クライアント ライブラリのインストール] セクションに、サポートされているライブラリが表示されます。
その他のすべてのプロジェクトの場合
- [ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
- API をインストールするには、API の詳細ページに記載されているインストール手順を実行してください。
Java アプリケーションを開発する場合は、ライブラリとして Google Cloud クライアント ライブラリ(推奨)または Java Spring Google Cloud を指定する必要もあります。
- 完了したら、[閉じる] をクリックします。
[Google Cloud APIs の管理] ダイアログの [クライアント ライブラリのインストール] セクションに、サポートされているライブラリが表示されます。
API コードサンプルを使用する
API Explorer で各 API のコードサンプルを検索して使用するには、以下の手順に沿って操作します。
[ツール] > [Google Cloud Code] > [Cloud APIs] に移動します。
詳細ビューを開くには、API の名前をクリックします。
API のコードサンプルを表示するには、[コードサンプル] タブをクリックします。
サンプルリストをフィルタリングするには、[言語] プルダウン メニューから、検索するテキストを入力するか、プログラミング言語を選択します。
認証の設定
必要な API を有効にして必要なクライアント ライブラリを追加したら、アプリケーションの認証を正常に完了するためにアプリケーションを構成する必要があります。構成は、開発の種類と実行するプラットフォームによって異なります。
関連する認証手順を完了すると、アプリケーションが認証され、デプロイの準備が整います。
ローカルでの開発
ローカルマシン
IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud
auth application-default login
を手動で実行します。
minikube
- IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、
gcloud auth application-default login
を手動で実行します。 minikube start --addons gcp-auth
で minikube を起動します。これにより、ADC が Pod にマウントされます。Google Cloud 用の詳細な minikube 認証ガイドについては、minikube gcp-auth ドキュメントをご覧ください。
その他のローカル K8s クラスタ
- IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、
gcloud auth application-default login
を手動で実行します。 - Pod またはデプロイのマニフェストで Pod の仕様を編集して、Google Cloud クライアント ライブラリで認証情報を検出できるように、ローカルの
gcloud
ディレクトリを Kubernetes Pod にマウントします。Kubernetes Pod の構成例:apiVersion: v1 kind: Pod metadata: name: my-app labels: name: my-app spec: containers: - name: my-app image: gcr.io/google-containers/busybox ports: - containerPort: 8080 volumeMounts: - mountPath: /root/.config/gcloud name: gcloud-volume volumes: - name: gcloud-volume hostPath: path: /path/to/home/.config/gcloud
Cloud Run
IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。Cloud Code でログインしていない場合は、gcloud
auth application-default login
を手動で実行します。
リモート開発
Google Kubernetes Engine
プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
- (開発のみ)
- 次の設定で GKE クラスタを作成します。
- GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、そのサービス アカウントを使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。 - クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
- GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、そのサービス アカウントを使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
- 必要なロールを Compute Engine のデフォルト サービス アカウントに割り当てます。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- Compute Engine のデフォルトのサービス アカウントが使用されている場合は、適切な IAM ロールがすでに適用されている可能性があります。
ID に付与できる IAM ロールタイプと事前定義ロールの一覧については、ロールについてのガイドをご覧ください。
ロールを付与する手順については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
- 次の設定で GKE クラスタを作成します。
- (本番環境に推奨)
- Workload Identity を使用して GKE クラスタとアプリケーションを構成し、GKE で Google Cloud サービスを認証します。これにより、Kubernetes サービス アカウントが Google サービス アカウントに関連付けられます。
- Kubernetes Deployment YAML ファイル内の
.spec.serviceAccountName
フィールドを設定して、Kubernetes サービス アカウントを参照するように Kubernetes Deployment を構成します。
Cloud Code テンプレートから作成されたアプリの場合、このファイルは kubernetes-manifests フォルダにあります。 - アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
ID に付与できる IAM ロールタイプと事前定義ロールの一覧については、ロールについてのガイドをご覧ください。
ロールを付与する手順については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
Cloud Run
-
Cloud Run アプリケーションをデプロイするための新しい専用のサービス アカウントを作成するには、[サービス アカウント] ページで、Secret が保存されているプロジェクトを選択します。
- [サービス アカウントを作成] をクリックします。
- [サービス アカウントの作成] ダイアログで、わかりやすいサービス アカウント名を指定します。
- [サービス アカウント ID] を一意のわかりやすい値に変更してから、[作成] をクリックします。
- アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、付与し、[続行] をクリックして、[完了] をクリックします。
- デプロイ構成に Kubernetes サービス アカウントを追加するには、[実行] > [構成を編集] に移動して、[サービス名] フィールドでサービス アカウントを指定します。
Cloud Run
プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
- (開発のみ)
- 次の設定で GKE クラスタを作成します。
- GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。 - クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
- GKE のデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
- 必要なロールを Compute Engine のデフォルト サービス アカウントに割り当てます。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- Compute Engine のデフォルトのサービス アカウントが使用されている場合は、適切な IAM ロールがすでに適用されている可能性があります。
ID に付与できる IAM ロールタイプと事前定義ロールの一覧については、ロールについてのガイドをご覧ください。
ロールを付与する手順については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
- 次の設定で GKE クラスタを作成します。
- (本番環境に推奨)
- Workload Identity を使用して GKE クラスタとアプリケーションを構成し、GKE で Google Cloud サービスを認証します。これにより、Kubernetes サービス アカウントが Google サービス アカウントに関連付けられます。
- デプロイ構成に Kubernetes サービス アカウントを追加するには、[実行] > [構成を編集] に移動して、[サービス名] フィールドで Kubernetes サービス アカウントを指定します。
- アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
ID に付与できる IAM ロールタイプと事前定義ロールの一覧については、ロールについてのガイドをご覧ください。
ロールを付与する手順については、リソースへのアクセス権の付与、変更、取り消しをご覧ください。
Secret Manager 権限を有効にしたリモート開発
認証にサービス アカウントを使用してリモートで開発しており、アプリケーションが Secret を使用している場合は、リモート開発の手順に追加していくつかの手順を行う必要があります。これらの手順では、Google サービス アカウントに特定の Secret Manager の Secret にアクセスに必要なロールを割り当てます。
Secret Manager ツール ウィンドウを開くには、[ツール] > [Google Cloud Code] > Secret Manager に移動します。
コード内でアクセスする Secret を選択します。
[権限] タブをクリックし、編集 [権限を編集] をクリックして Secret の権限を構成します。
Google Cloud コンソールがウェブブラウザの新しいウィンドウで開き、シークレットの Secret Manager 構成ページが表示されます。
Google Cloud コンソールで、[権限] タブをクリックし、[アクセス権を付与] をクリックします。
[新しいプリンシパル] フィールドに、サービス アカウントを入力します。
[ロールを選択] プルダウン フィールドで、[Secret Manager のシークレット アクセサー] ロールを選択します。
終わったら [Save] をクリックします。
サービス アカウントには、このシークレットにアクセスする権限があります。