IAM Conditions を使用して、個々のワークステーション ポートへのアクセス権を付与できます。これは、個々のワークステーション ポートへの限定アクセスを共有する場合に便利です。たとえば、IAM Conditions を使用して、ワークステーション ポートで実行されているデモサーバーにアクセス権を付与できます。
Cloud Workstations は、destination.port
IAM Conditions 属性をサポートしています。
IAM Conditions の詳細については、以下をご覧ください。
始める前に
個々のワークステーション ポートへのアクセス権を付与するには、ワークステーションに Cloud Workstations ポリシー管理者(roles/workstations.policyAdmin
)のロールが必要です。
ワークステーションの IAM ロールを確認する
ワークステーションに Cloud Workstations ユーザー(roles/workstations.user
)ロールと Cloud Workstations ポリシー管理者(roles/workstations.policyAdmin
)ロールがあることを確認します。ワークステーションにこれらのロールがない場合は、ワークステーションにこれらのロールを付与するよう組織の Cloud Workstations 管理者に依頼してください。
ワークステーションでデモサーバーを起動する
ワークステーションを起動するガイドに沿って、ワークステーションを起動して接続します。ワークステーションで次のコマンドを実行して、ワークステーション ポートでデモサーバーを起動します。
python3 -m http.server WORKSTATIONS_PORT
次のように置き換えます。
WORKSTATIONS_PORT
: デモサーバーがリッスンするポート。たとえば、8081 を使用します。
ワークステーションの条件付き IAM ポリシーを更新する
ワークステーション ポートへのアクセス権を付与するには、Google Cloud コンソールまたは gcloud
CLI の iam policies
コマンドを使用します。
Console
ワークステーションへの条件付きアクセスを許可するには:
Google Cloud コンソールで、[Cloud Workstations] > [ワークステーション] ページに移動します。
ワークステーションを見つけて、more_vert [その他] オプション メニューをクリックし、[ユーザーを追加] を選択します。
条件付きアクセスを付与するには、プリンシパルのメールアドレスを入力します。例:
222larabrown@gmail.com
[ロール] として [Cloud Workstations User] が選択されていることを確認します。
ポート固有のアクセス権を付与するように IAM の条件を更新します。
[IAM の条件を追加] をクリックします。
タイトル(ポート 8081 など)を指定します。
[条件エディタ] タブで、次の条件を入力します。
destination.port == WORKSTATIONS_PORT
- [保存] をクリックして、プリンシパルに対する特定のポートの条件付きアクセスの付与を完了します。
gcloud
gcloud
CLI のworkstations get-iam-policy
コマンドを使用して、ワークステーションの IAM ポリシーを取得します。このコマンドは、ポリシーを/tmp/WORKSTATIONS_NAME.yaml
ファイルに出力します。ファイルが存在する場合は上書きされます。gcloud workstations get-iam-policy WORKSTATIONS_NAME \ --cluster=WORKSTATIONS_CLUSTER_NAME \ --config=WORKSTATIONS_CONFIG_NAME \ --region=LOCATION \ --project=WORKSTATIONS_PROJECT_ID \ > /tmp/WORKSTATIONS_NAME.yaml
次のように置き換えます。
WORKSTATIONS_NAME
: ワークステーションの名前。WORKSTATIONS_CONFIG_NAME
: ワークステーション構成の名前。WORKSTATIONS_CLUSTER_NAME
: ワークステーション クラスタの名前。LOCATION
: ワークステーション クラスタのリージョン名。WORKSTATIONS_PROJECT_ID
: ワークステーションを含む Cloud Workstations プロジェクトの ID。
プリンシパルに条件付きアクセス権を付与するには、前の手順でダウンロードしたワークステーションの IAM ポリシー ファイルを
/tmp/WORKSTATIONS_NAME.yaml
で更新します。次に例を示します。
bindings: - members: - user:YOUR_ID role: roles/workstations.user - condition: expression: destination.port == WORKSTATIONS_PORT title: Port WORKSTATIONS_PORT members: - user:PRINCIPAL role: roles/workstations.user etag: BwYlui8uSXo= version: 3
次のように置き換えます。
YOUR_ID
: 独自のログイン ID。例:222larabrown@gmail.com
PRINCIPAL
: ワークステーションのポート WORKSTATIONS_PORT へのアクセスを共有するプリンシパル。例:baklavainthebalkans@gmail.com
WORKSTATIONS_PORT
: デモサーバーがリッスンしているワークステーションのポート。
gcloud
CLI のworkstations set-iam-policy
コマンドを使用して、ワークステーションの IAM ポリシーを設定します。gcloud workstations set-iam-policy WORKSTATIONS_NAME \ --cluster=WORKSTATIONS_CLUSTER_NAME \ --config=WORKSTATIONS_CONFIG_NAME \ --region=LOCATION \ --project=WORKSTATIONS_PROJECT_ID \ /tmp/WORKSTATIONS_NAME.yaml
次のように置き換えます。
WORKSTATIONS_NAME
: ワークステーションの名前。WORKSTATIONS_CONFIG_NAME
: ワークステーション構成の名前。WORKSTATIONS_CLUSTER_NAME
: ワークステーション クラスタの名前。LOCATION
: ワークステーション クラスタのリージョン名。WORKSTATIONS_PROJECT_ID
: ワークステーションを含む Cloud Workstations プロジェクトの ID。
ワークステーションの IAM ポリシーが更新されると、プリンシパルはワークステーションの指定されたポートにアクセスできるようになります。
ワークステーションの URL を共有する
プリンシパルは、次のワークステーション URL を使用して指定されたポートにアクセスできます。
https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev
プレースホルダは次のものを表します。
WORKSTATIONS_PORT
: デモサーバーがリッスンしているポート。WORKSTATIONS_NAME
: ワークステーション名。WORKSTATIONS_CLUSTER_NAME
: ランダムに生成されたクラスタ識別子。cloudworkstations.dev
: ワークステーションのデフォルト ドメイン名。
プリンシパルは、アクセス権のないワークステーションの他のポートにアクセスできません。