Cloud APIs を使用すると、Google Cloud プロダクトとサービスにプログラムからアクセスできます。これらの API では、クライアント ライブラリ経由で呼び出し可能な、シンプルな JSON REST インターフェースが公開されています。
Cloud Code を使用すると、統合された Google Cloud サービスのこのリストと対応するクライアント ライブラリとドキュメントにアクセスできます。また、Cloud APIs を閲覧して有効化し、プロジェクトに Cloud クライアント ライブラリを追加できます。これらのすべてを IDE から実行できます。
Cloud APIs の閲覧
IDE 内で利用可能なすべての Google Cloud APIs を確認する手順は次のとおりです。
- アクティビティ バーから Cloud Code - Cloud APIs アイコン
をクリックします。
- Google Cloud APIs Explorer のツリーを展開して、使用可能なすべての API を表示します。Explorer はカテゴリ別に Cloud APIs をグループ化します。
- API をクリックすると、サービス名、ステータス、対応するクライアント ライブラリのインストール手順、関連ドキュメントなどの詳細が表示されます。
Cloud APIs の有効化
また、API の詳細ページを使用すると、プロジェクトの Cloud APIs をすばやく有効にできます。手順は次のとおりです。
- Cloud APIs の詳細ビューで、Cloud APIs を有効にするプロジェクトを選択します。
- [Enable API] ボタンをクリックします。
API が有効になると、この変更を確認するメッセージが表示されます。
プロジェクトにクライアント ライブラリを追加する
Cloud Code を使用して Cloud APIs を探索し有効にする方法とは別に、言語固有のクライアント ライブラリをプロジェクトに追加する方法もあります。これにはインストールが必要です。API の詳細ページに、言語別のインストール手順が記載されています。
認証の設定
必要な API を有効にして必要なクライアント ライブラリを追加したら、アプリケーションの認証を正常に完了するためにアプリケーションを構成する必要があります。構成は、開発の種類と実行するプラットフォームによって異なります。
関連する認証手順を完了すると、アプリケーションが認証され、デプロイの準備が整います。
ローカルでの開発
ローカルマシン
- IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。
IDE の外部で Google Cloud に(gcloud コマンドライン ツールなどから)ログインした場合は、gcloud auth login --update-adc
を実行して ADC を設定する必要があります。これにより、Google Cloud クライアント ライブラリで、認証に使用する ADC を検出できるようにもなります。
minikube
- IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。
IDE の外部で Google Cloud に(gcloud コマンドライン ツールなどから)ログインした場合は、gcloud auth login --update-adc
を実行して ADC を設定する必要があります。これにより、minikube で認証に使用する ADC を検出できます。 minikube start --addons gcp-auth
で minikube を起動します。これにより、ADC が Pod にマウントされます。Google Cloud 用の詳細な minikube 認証ガイドについては、minikube gcp-auth ドキュメントをご覧ください。
その他のローカル K8s クラスタ
- IDE から Google Cloud にログインした場合は、Cloud Code には、アプリケーションのデフォルト認証情報(ADC)が確実に設定されています。
IDE の外部で Google Cloud に(gcloud コマンドライン ツールなどから)ログインした場合は、gcloud auth login --update-adc
を実行して ADC を設定する必要があります。 - デプロイ マニフェストを編集して Kubernetes Pod にローカルの
~/.config/gcloud
ディレクトリをマウントします。これにより、Google Cloud クライアント ライブラリで認証情報を検出できるようになります。 また、Google Cloud プロジェクト ID をGOOGLE_CLOUD_PROJECT
という名前の環境変数に設定する必要もあります。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 env: - name: GOOGLE_CLOUD_PROJECT value: my-project-id 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)が確実に設定されています。
IDE の外部で Google Cloud に(gcloud コマンドライン ツールなどから)ログインした場合は、gcloud auth login --update-adc
を実行して ADC を設定する必要があります。これにより、Cloud Run のローカルでシミュレートされた環境で、認証に使用する ADC を検出できます。
リモート開発
Google Kubernetes Engine
プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
- (開発のみ)
- 次の設定で GKE クラスタを作成します。
- GKE でデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。 - クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
- GKE でデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
- サービス アカウントに必要なロールを割り当てます。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- Compute Engine のデフォルトのサービス アカウントが使用されている場合は、適切な IAM ロールがすでに適用されている可能性があります。
- ロールについてのガイドでは、IAM ロールのタイプと、ID に付与できる事前定義ロールの一覧について説明しています。
- 次の設定で 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 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- ロールについてのガイドでは、IAM ロールのタイプと、ID に付与できる事前定義ロールの一覧について説明しています。
Cloud Run
- [サービス アカウント] ページから、Cloud Run アプリケーションをデプロイするための新しい一意のサービス アカウントを作成します。Secret が保存されているプロジェクトと同じプロジェクトを選択するようにしてください。
[サービス アカウント] ページに移動 - アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。それには、Secret を右クリックして [Cloud Console で権限を編集] を選択します。
ロールについてのガイドでは、IAM ロールのタイプと、ID に付与できる事前定義ロールの一覧について説明しています。 - デプロイ構成にサービス アカウントを追加します。これを行うには、Cloud Code ステータスバーを使用して、[Cloud Run: Deploy] を選択します。Cloud Run Deployment UI の [リビジョン設定] で、[サービス アカウント] フィールドにサービス アカウントを入力します。
Cloud Run
プロジェクトのスコープに応じて、GKE での Google Cloud サービスの認証方法を選択できます。
- (開発のみ)
- 次の設定で GKE クラスタを作成します。
- GKE でデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
Compute Engine サービス アカウントはノードにデプロイされているすべてのワークロードで共有されるので、この方法は権限をオーバープロビジョニングし、開発目的でのみ使用する必要があります。 - クラスタで Workload Identity が有効になっていないことを確認します([クラスタ] > [セキュリティ] セクションにて)。
- GKE でデフォルトで使用されるサービス アカウント(Compute Engine のデフォルト サービス アカウント)を使用していること、および [アクセス スコープ] が [すべての Cloud APIs への完全アクセス権を許可] に設定されていることを確認してください(この 2 つの設定を行うには、[ノードプール] > [セキュリティ] と進んでください)。
- サービス アカウントに必要なロールを割り当てます。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- Compute Engine のデフォルトのサービス アカウントが使用されている場合は、適切な IAM ロールがすでに適用されている可能性があります。
- ロールについてのガイドでは、IAM ロールのタイプと、ID に付与できる事前定義ロールの一覧について説明しています。
- 次の設定で GKE クラスタを作成します。
- (本番環境に推奨)
- Workload Identity を使用して GKE クラスタとアプリケーションを構成し、GKE で Google Cloud サービスを認証します。これにより、Kubernetes サービス アカウントが Google サービス アカウントに関連付けられます。
- デプロイ構成にサービス アカウントを追加します。これを行うには、Cloud Code ステータスバーを使用して、[Cloud Run: Deploy] を選択します。Cloud Run Deployment UI の [リビジョン設定] で、[サービス アカウント] フィールドに Kubernetes サービス アカウントを入力します。
- アクセスしようとしている Google Cloud サービスに追加のロールが必要な場合は、アプリの開発に使用している Google サービス アカウントにそれらのロールを付与します。
- Secret にアクセスする場合は、Secret Manager 固有の手順に従って、サービス アカウントに必要なロールを設定します。
- ロールについてのガイドでは、IAM ロールのタイプと、ID に付与できる事前定義ロールの一覧について説明しています。
Secret Manager 権限を有効にしたリモート開発
認証にサービス アカウントを使用してリモートで開発しており、アプリケーションが Secret を使用している場合は、リモート開発の手順に追加していくつかの手順を行う必要があります。これらの手順では、Google サービス アカウントに特定の Secret Manager の Secret にアクセスに必要なロールを割り当てます。
[Secret Manager] ビュー
を開き、コード内でアクセスする Secret を選択します。
Secret を右クリックし、[Cloud Console で権限を編集] を選択します。これにより、その Secret の Secret Manager 構成ページがウェブブラウザで開きます。
Cloud Console の情報パネルで、[メンバーを追加] を選択します。
サービス アカウントに、Secret Manager Secret アクセサーのロールを割り当てます。
これで、サービス アカウントにこの特定の Secret にアクセスするための権限が付与されました。