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:
- Configure uma conta de serviço com os papéis do IAM adequados.
- 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
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
USERNAMEpor 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.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_EMAILpelo 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: 1Conceda à 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
ROLEpor 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.
- Para acesso somente leitura, use o papel
Autorize o agente de serviço do Cloud FTP a gerar tokens para a conta de serviço do usuário:
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.
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_EMAILpelo 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.