Conceda acesso a portas individuais de estações de trabalho na nuvem

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:

  1. Na Google Cloud consola, navegue para a página Cloud Workstations > Estações de trabalho.

    Aceda a Estações de trabalho

  2. Encontre a sua estação de trabalho, clique no menu de opções more_vertMais e selecione Adicionar utilizadores.

    Adicione utilizadores e edite autorizações na página **Estação de trabalho**

  3. Para conceder acesso condicional, introduza o email do principal. Por exemplo, 222larabrown@gmail.com.

  4. Certifique-se de que a opção Utilizador do Cloud Workstations está selecionada como função.

  5. Atualize a condição do IAM para conceder acesso específico à porta:

    1. Clique em Adicionar condição do IAM.

    2. Especifique um título, como Porta WORKSTATIONS_PORT.

    3. No separador Editor de condições, introduza a seguinte condição:

    destination.port == WORKSTATIONS_PORT
    

    Editor de condições do IAM com condição da porta de destino 8081

    1. Clique em Guardar para finalizar a concessão de acesso condicional à porta específica ao principal.

gcloud

  1. Obtenha a política IAM da estação de trabalho através do comando gcloud CLI workstations 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
    
  2. 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 campo condition.

    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.
  3. Defina a política IAM da estação de trabalho através do comando gcloud CLI workstations 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.