Atualizar a conta de serviço de um usuário do SFTP

Este documento mostra como atualizar a conta de serviço de um usuário do Cloud FTP. A conta de serviço acessa os recursos do Cloud Storage em nome do usuário.

Em um nível alto, estas são as etapas para atualizar a conta de serviço de um usuário:

  1. Configure uma conta de serviço com os papéis do IAM adequados.
  2. Atualize a conta de serviço anexada ao usuário.

Recomendamos que você use uma conta de serviço dedicada para cada usuário para gerenciar o acesso SFTP separadamente para cada um.

Funções exigidas

Para receber a permissão necessária para atualizar os usuários do SFTP, peça ao administrador para conceder a você o papel do IAM de administrador do FTP (roles/ftp.admin) no projeto. Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Esse papel predefinido contém a ftp.users.update permissão, que é necessária para atualizar os usuários do SFTP.

Também é possível conseguir essa permissão com papéis personalizados ou outros papéis predefinidos.

Configurar uma conta de serviço

  1. Crie uma conta de serviço para o usuário, se ela ainda não existir.

    gcloud iam service-accounts create USERNAME-sa \
        --description="USERNAME SFTP Service Account" \
        --display-name="USERNAME SFTP Service Account"

    Substitua USERNAME por um nome de usuário exclusivo para o usuário do SFTP. O nome de usuário precisa começar com uma letra minúscula e pode incluir letras minúsculas, números ou hifens.

    Se a operação for bem-sucedida, uma mensagem como Created service account [example-userid-sa] será exibida.

  2. Conceda a si mesmo o papel Usuário da conta de serviço (roles/iam.serviceAccountUser):

    gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
        --member="user:ADMINISTRATOR_EMAIL" \
        --role="roles/iam.serviceAccountUser"

    Substitua ADMINISTRATOR_EMAIL pelo endereço de e-mail da principal que está atualizando o usuário do SFTP. Se você estiver atualizando o usuário (em vez de um aplicativo), esse valor será o endereço de e-mail que você usa para acessar Google Cloud.

    Se a operação for bem-sucedida, uma mensagem como esta será exibida:

    Updated IAM policy for serviceAccount [example-userid-sa@example-project.iam.gserviceaccount.com].
    bindings:
    - members:
    - user:admin@example.com
    role: roles/iam.serviceAccountUser
    etag: BwZJk7OiSzw=
    version: 1
    
  3. Conceda à conta de serviço do usuário o papel do IAM necessário para acessar o bucket:

    gcloud storage buckets add-iam-policy-binding gs://BUCKET_NAME \
        --member="serviceAccount:USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com" \
        --role="ROLE"

    Substitua ROLE por um dos seguintes papéis do IAM:

    • Para acesso somente leitura, use o papel roles/storage.objectViewer.
    • Para acesso de leitura e gravação, use o papel roles/storage.objectAdmin.

    Repita essa etapa para cada bucket que o usuário precisa acessar.

  4. Autorize o agente de serviço do Cloud FTP a gerar tokens para a conta de serviço do usuário:

    1. Encontre o endereço de e-mail do agente de serviço do servidor SFTP. Para conferir as etapas, consulte Encontrar detalhes sobre um servidor.

    2. Autorize o agente de serviço do Cloud FTP:

      gcloud iam service-accounts add-iam-policy-binding USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com \
          --member="serviceAccount:SERVICE_AGENT_EMAIL" \
          --role="roles/iam.serviceAccountTokenCreator"

      Substitua SERVICE_AGENT_EMAIL pelo endereço de e-mail do agente de serviço.

Em seguida, atualize a conta de serviço do usuário.

Atualizar a conta de serviço de um usuário

REST

Para atualizar a conta de serviço anexada a um usuário do SFTP, use o servers.users.patch método. No parâmetro de consulta updateMask, forneça o campo customerServiceAccount.

Antes de usar os dados da solicitação abaixo, faça estas substituições:

  • PROJECT_ID: o Google Cloud ID do projeto do servidor.
  • LOCATION_ID: o local do servidor, como us-west1.
  • SERVER_ID: o ID do servidor.
  • USERNAME: o nome de usuário do usuário do SFTP.

Método HTTP e URL:

PATCH https://ftp.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION_ID/servers/SERVER_ID/users/USERNAME?updateMask=customerServiceAccount

Corpo JSON da solicitação:

{
  "customerServiceAccount": "USERNAME-sa@PROJECT_ID.iam.gserviceaccount.com"
}

Para enviar a solicitação, expanda uma destas opções:

A resposta identifica uma operação de longa duração. Leva alguns segundos para que o usuário seja atualizado.

A seguir