このドキュメントでは、ワークステーション内で API アクセスを認証して設定する方法について説明します。Google Cloud 認証の詳細については、認証の概要をご覧ください。
Google Cloud CLI でユーザーとして認証する
Cloud Workstations を起動すると、gcloud
CLI を介してユーザー アカウントを使用して Google Cloud サービスと API にアクセスできます。
- ワークステーションでターミナルを開きます。ターミナル ウィンドウを開く方法は、使用している IDE によって異なります。 たとえば、Cloud Workstations のベースエディタを使用している場合は、[ターミナル] > [新しいターミナル] を選択するか、Ctrl+Shift+` を押してターミナルを開きます。
- 次のコマンドを使用して認証します。
gcloud auth login --no-launch-browser
- コマンドに表示される手順に沿って、Google Cloud に対する認証を行います。
- 次のコマンドを使用して、Google Cloud プロジェクト ID を指定します。
gcloud config set project PROJECT_ID
-
アプリケーションのデフォルト認証情報を有効にして、Google Cloud サービスの呼び出しを許可します。
gcloud auth application-default login
gcloud
CLI 認証情報が保存され、今後のセッションでワークステーションを使用するときに使用できるようになりました。
ワークステーションに HTTP リクエストを発行する
ワークステーションに HTTP リクエストを発行するには、そのワークステーションで Cloud Workstations ユーザーのロールを持つアカウントへのアクセス トークンが必要です。
- generateAccessToken API メソッドを使用してアクセス トークンを生成します。
Authorization
という名前の HTTP ヘッダーを値Bearer $TOKEN
で追加します。
ブラウザでワークステーションに接続する
ブラウザでワークステーションの URL を開くと、ワークステーション サーバーへのリダイレクトを通じて自動的に認証され、generateAccessToken API メソッドによって生成されたアクセス トークンが取得されます。これにより、ワークステーションにリダイレクトして戻され、現在のワークステーション セッションで有効な認証 Cookie が設定されます。
このリダイレクトをスキップするには、_workstationAccessToken
URL パラメータを使用します。
- generateAccessToken API メソッドを使用してアクセス トークンを生成します。
- ブラウザでワークステーションの URL を開き、
_workstationAccessToken=TOKEN
の形式で URL パラメータを追加します。
これにより、現在のワークステーション セッションへのアクセスを許可する認証 Cookie がブラウザに設定されます。ワークステーション サーバーへのアクセスがネットワーク ポリシーによってブロックされている場合や、iframe を使用してワークステーションを他のサイトに表示する場合に、リダイレクトをスキップすると便利です。
サービス アカウントの権限借用
組織のセキュリティ ポリシーにより、ユーザー アカウントに必要な権限の付与が許可されていない場合は、サービス アカウントの権限を借用することもできます。ワークステーション構成で指定されたサービス アカウントの権限を借用するには、サービス アカウント スコープ フィールドを指定します。指定した場合、この構成のワークステーション ユーザーにはサービス アカウントに対する iam.serviceAccounts.actAs
権限が必要です。サービス アカウントのスコープの指定方法について詳しくは、アクセス スコープをご覧ください。
gcloud
CLI の impersonate_service_account
プロパティを使用して、別のサービス アカウントの権限を借用することもできます。
-
プリンシパルに、サービス アカウントの権限を借用するために必要な権限を持たせるには、サービス アカウントに対するサービス アカウント トークン作成者(
roles/iam.serviceAccountTokenCreator
)の IAM ロールをプリンシパルに付与するよう管理者に依頼してください。ロールの付与の詳細については、アクセス権の管理をご覧ください。この事前定義ロールには、サービス アカウントの権限を借用するために必要な
iam.serviceAccounts.getAccessToken
権限が含まれています。 - ワークステーションでターミナルを開くか、すでに開いているターミナルに移動します。
impersonate_service_account
プロパティを設定するには、次のgcloud
CLI コマンドを入力します。gcloud config set auth/impersonate_service_account=SERVICE_ACCT_EMAIL
gcloud
CLI 認証情報が保存され、今後のセッションでワークステーションを使用するときに使用できるようになりました。
詳細については、サービス アカウントの権限借用をご覧ください。
次のステップ
- SSH サポートの詳細を確認する。
- ワークステーション構成パラメータの一覧をご覧ください。
- Identity and Access Management を使用したアクセス制御と Cloud Workstations