Pode usar as condições da IAM para conceder acesso a portas de estações de trabalho individuais. Isto é útil para partilhar o acesso limitado a portas de estações de trabalho individuais. Por exemplo, pode usar as condições da IAM para conceder acesso a um servidor de demonstração em execução numa porta de estação de trabalho.
O Cloud Workstations suporta o atributo destination.port
IAM Conditions.
Para mais informações sobre as condições do IAM, consulte o seguinte:
Antes de começar
Antes de poder conceder acesso a portas de estações de trabalho individuais, tem de ter a função
Administrador de políticas do Cloud Workstations
(roles/workstations.policyAdmin
) na estação de trabalho.
Verifique as funções IAM na estação de trabalho
Certifique-se de que tem as funções de utilizador do Cloud Workstations (roles/workstations.user
) e
administrador de políticas do Cloud Workstations (roles/workstations.policyAdmin
)
na estação de trabalho. Caso contrário, peça ao administrador dos Cloud Workstations da sua organização para lhe conceder essas funções na estação de trabalho.
Inicie um servidor de demonstração na estação de trabalho
Inicie e ligue-se às suas estações de trabalho através do guia Iniciar estação de trabalho. Execute o seguinte comando na estação de trabalho para iniciar um servidor de demonstração numa porta da estação de trabalho.
python3 -m http.server WORKSTATIONS_PORT
Substitua o seguinte:
WORKSTATIONS_PORT
: a porta na qual o servidor de demonstração vai estar atento. Por exemplo, use 8081.
Atualize a política IAM condicional da estação de trabalho
Para conceder acesso a uma porta da estação de trabalho, pode usar o comando Google Cloud console ougcloud
CLI iam policies
command.
Consola
Para conceder acesso condicional à estação de trabalho:
Na Google Cloud consola, navegue para a página Cloud Workstations > Estações de trabalho.
Encontre a sua estação de trabalho, clique no menu de opções more_vertMais e selecione Adicionar utilizadores.
Para conceder acesso condicional, introduza o email do principal. Por exemplo,
222larabrown@gmail.com
.Certifique-se de que a opção Utilizador do Cloud Workstations está selecionada como função.
Atualize a condição do IAM para conceder acesso específico à porta:
Clique em Adicionar condição do IAM.
Especifique um título, como Porta WORKSTATIONS_PORT.
No separador Editor de condições, introduza a seguinte condição:
destination.port == WORKSTATIONS_PORT
- Clique em Guardar para finalizar a concessão de acesso condicional à porta específica ao principal.
gcloud
Obtenha a política IAM da estação de trabalho através do comando
gcloud
CLIworkstations get-iam-policy
. Este comando envia a política para o ficheiro:/tmp/WORKSTATIONS_NAME.yaml
. Se o ficheiro existir, é substituído.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
Substitua o seguinte:
WORKSTATIONS_NAME
: o nome da estação de trabalho.WORKSTATIONS_CONFIG_NAME
: o nome da configuração da estação de trabalho.WORKSTATIONS_CLUSTER_NAME
: o nome do cluster da estação de trabalho.LOCATION
: o nome da região do cluster da estação de trabalho.WORKSTATIONS_PROJECT_ID
: o ID do projeto do Cloud Workstations que contém a sua estação de trabalho.
O formato YAML da política é transferido para
/tmp/WORKSTATIONS_NAME.yaml
:bindings: - members: - user:222larabrown@gmail.com role: roles/workstations.user etag: BwYdnV9Eg7Y= version: 1
Para conceder acesso condicional a um principal, adicione a seguinte expressão de condição realçada ao ficheiro de política que transferiu no passo anterior.
Não modifique o etag. Certifique-se de que a versão é especificada como
3
, uma vez que esta política inclui o campocondition
.Por exemplo:
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
Substitua o seguinte:
YOUR_ID
: o seu próprio ID de início de sessão. Por exemplo,222larabrown@gmail.com
.PRINCIPAL
: o principal com o qual quer partilhar o acesso da porta WORKSTATIONS_PORT da estação de trabalho. Por exemplo,baklavainthebalkans@gmail.com
.WORKSTATIONS_PORT
: a porta da estação de trabalho na qual o servidor de demonstração está a escutar.
Defina a política IAM da estação de trabalho através do comando
gcloud
CLIworkstations set-iam-policy
.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
Substitua o seguinte:
WORKSTATIONS_NAME
: o nome da estação de trabalho.WORKSTATIONS_CONFIG_NAME
: o nome da configuração da estação de trabalho.WORKSTATIONS_CLUSTER_NAME
: o nome do cluster da estação de trabalho.LOCATION
: o nome da região do cluster da estação de trabalho.WORKSTATIONS_PROJECT_ID
: o ID do projeto do Cloud Workstations que contém a sua estação de trabalho.
Depois de a Política IAM da estação de trabalho ser atualizada, o principal vai poder aceder à porta especificada da estação de trabalho.
Partilhe o URL da estação de trabalho
O principal vai poder aceder à porta especificada com o seguinte URL da estação de trabalho:
https://WORKSTATIONS_PORT-WORKSTATIONS_NAME.WORKSTATIONS_CLUSTER_NAME.cloudworkstations.dev
Os marcadores de posição representam o seguinte:
WORKSTATIONS_PORT
: a porta na qual o servidor de demonstração está a escutar.WORKSTATIONS_NAME
: o nome da estação de trabalho.WORKSTATIONS_CLUSTER_NAME
: o identificador do cluster gerado aleatoriamente.cloudworkstations.dev
: o nome de domínio predefinido de uma estação de trabalho.
O diretor não vai poder aceder a outras portas da estação de trabalho às quais não tem acesso.