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

このドキュメントでは、ワークステーション内で API アクセスを認証して設定する方法について説明します。Google Cloud 認証の詳細については、認証の概要をご覧ください。

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

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

  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 権限が必要です。サービス アカウントのスコープの指定方法について詳しくは、アクセス スコープをご覧ください。

次のステップ