ワークステーション内で API アクセスを認証して設定する

このドキュメントでは、ワークステーション内で API アクセスを認証して設定する方法について説明します。これには、Workstations UI を使用してログインし、gcloud CLI を認証して、アプリケーションのデフォルト認証情報(ADC)に認証情報を提供する方法も含まれます。

Google Cloud CLI でユーザーとして認証する

Cloud Workstations を起動すると、gcloud CLI を介してユーザー アカウントを使用して Google Cloud サービスと API にアクセスできます。

gcloud CLI を認証し、アプリケーションのデフォルト認証情報(ADC)にユーザー認証情報を提供するには、次のいずれかのオプションを選択します。

Workstations UI を使用したユーザー ログイン

Google Cloud コンソールからログインすると、gcloud CLI が自動的に認証され、ワークステーション環境のアプリケーションのデフォルト認証情報(ADC)にユーザー認証情報が提供されます。

ワークステーション リソースで UI ログインを有効にする

この機能を使用する前に、ワークステーションの構成とクラスタの両方が UI ログインをサポートするように設定されていることを確認します。

  1. Google Cloud コンソールで、ワークステーション構成の [環境設定] セクションに移動します。[認証] で、[認証情報のプッシュを有効にする] チェックボックスをオンにします(または API で enable_pushing_credentials: true を設定します)。
  2. gcloud CLI を使用して、クラスタのコンソールのベース URL を Google Cloud コンソール エンドポイント(例: https://console.cloud.google.com/)に設定します。
    gcloud beta workstations clusters update CLUSTER_NAME \
        --region=REGION \
        --console-base-url="https://console.cloud.google.com/"

ワークステーションからログインする

ワークステーションにログインして認証するには:

  1. Cloud Workstations 用 Code OSS エディタで、[ワークステーションにログイン] をクリックします。 Google Cloud コンソールのログイン ウィンドウが開きます。
  2. Google Cloud コンソールで、ワークステーションの詳細(ワークステーション ID など)とアカウントの詳細を確認し、[続行] をクリックします。
  3. [確認] をクリックしてログインを完了します。
  4. 確認メッセージが表示されたら、ブラウザ ウィンドウを閉じてエディタに戻ります。 これで、ワークステーション環境の gcloud CLI とアプリケーションのデフォルト認証情報(ADC)で認証情報を使用できるようになりました。

ログイン セッションは 1 時間後に期限切れになります。 セッションの有効期限が近づくと、Cloud Workstations 用 Code OSS エディタのログインボタンに、EMAIL(Google)- まもなく期限切れになります(EMAIL はメールアドレス)またはワークステーションのログインがまもなく期限切れになりますと表示されます。認証情報を更新するには、ボタンをクリックして Google Cloud コンソールのプロンプトに沿って操作します。

gcloud CLI でログインする

構成またはクラスタで UI ログインが有効になっていない場合は、ワークステーション内のターミナルから gcloud CLI を使用して手動でログインできます。

  1. ワークステーションでターミナルを開きます。ターミナル ウィンドウを開く方法は、使用している IDE によって異なります。たとえば、Cloud Workstations のベースエディタを使用している場合は、[ターミナル] > [新しいターミナル] を選択するか、Ctrl+Shift+` を押してターミナルを開きます。
  2. 次のコマンドを使用して認証します。
    gcloud auth login --no-launch-browser
  3. コマンドに表示される手順に沿って Google Cloudに対する認証を行います。
  4. 次のコマンドを使用して、 Google Cloud プロジェクト ID を指定します。
    gcloud config set project PROJECT_ID
  5. アプリケーションのデフォルト認証情報を有効にして、 Google Cloud サービスの呼び出しを許可します。
    gcloud auth application-default login
  6. gcloud CLI 認証情報が保存され、今後のセッションでワークステーションを使用するときに利用できるようになりました。

ワークステーションに HTTP リクエストを発行する

ワークステーションに HTTP リクエストを発行するには、そのワークステーションで Cloud Workstations ユーザーのロールを持つアカウントへのアクセス トークンが必要です。

  1. generateAccessToken API メソッドを使用してアクセス トークンを生成します。
  2. Authorization という名前の HTTP ヘッダーを値 Bearer $TOKEN で追加します。

ブラウザでワークステーションに接続する

ブラウザでワークステーションの URL を開くと、ワークステーション サーバーへのリダイレクトを通じて自動的に認証され、generateAccessToken API メソッドによって生成されたアクセス トークンが取得されます。これにより、ワークステーションにリダイレクトして戻され、現在のワークステーション セッションで有効な認証 Cookie が設定されます。

このリダイレクトをスキップするには、_workstationAccessToken URL パラメータを使用します。

  1. generateAccessToken API メソッドを使用してアクセス トークンを生成します。
  2. ブラウザでワークステーションの URL を開き、_workstationAccessToken=TOKEN の形式で URL パラメータを追加します。

これにより、ブラウザに認証 Cookie が設定され、現在のワークステーション セッションへのアクセスが許可されます。ワークステーション サーバーへのアクセスがネットワーク ポリシーによってブロックされている場合や、iframe を使用してワークステーションを他のサイトに表示する場合に、リダイレクトをスキップすると便利です。

サービス アカウントの権限借用

組織のセキュリティ ポリシーにより、ユーザー アカウントに必要な権限の付与が許可されていない場合は、サービス アカウントの権限を借用することもできます。ワークステーション構成で指定されたサービス アカウントの権限を借用するには、サービス アカウントのスコープ フィールドを指定します。

        gcloud workstations configs create CONFIG \
            --cluster=CLUSTER \
            --region=REGION \
            --project=PROJECT \
            --service-account=SERVICE_ACCOUNT \
            --service-account-scopes=https://www.googleapis.com/auth/cloud-platform
      
指定した場合、この構成のワークステーション ユーザーにはサービス アカウントに対する iam.serviceAccounts.actAs 権限が必要です。サービス アカウントのスコープの指定方法について詳しくは、アクセス スコープをご覧ください。

次のステップ