ワークステーション内で 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 を使用してワークステーションを他のサイトに表示する場合に、リダイレクトをスキップすると便利です。

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

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

gcloud CLI の impersonate_service_account プロパティを使用して、別のサービス アカウントの権限を借用することもできます。

  1. プリンシパルに、サービス アカウントの権限を借用するために必要な権限を持たせるには、サービス アカウントに対するサービス アカウント トークン作成者roles/iam.serviceAccountTokenCreator)の IAM ロールをプリンシパルに付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。

    この事前定義ロールには、サービス アカウントの権限を借用するために必要な iam.serviceAccounts.getAccessToken 権限が含まれています。

    管理者は、カスタムロールや他の事前定義ロールを使用して、この権限をプリンシパルに付与することもできます。

  2. ワークステーションでターミナルを開くか、すでに開いているターミナルに移動します。
  3. impersonate_service_account プロパティを設定するには、次の gcloud CLI コマンドを入力します。
    gcloud config set auth/impersonate_service_account=SERVICE_ACCT_EMAIL
  4. gcloud CLI 認証情報が保存され、今後のセッションでワークステーションを使用するときに使用できるようになりました。
  5. 詳細については、サービス アカウントの権限借用をご覧ください。

次のステップ