Os usuários e as contas de serviço podem usar chaves públicas SSH para autenticar repositórios do Secure Source Manager. Nesta página, descrevemos como gerar um par de chaves SSH e adicioná-lo como um método de autenticação na interface da Web do Secure Source Manager.
O Secure Source Manager aceita os tipos de chave SSH RSA, ECDSA e Ed25519.
Funções exigidas
Para receber as permissões que você precisa para autenticar usando chaves públicas SSH, peça ao administrador para conceder a você os seguintes papéis do IAM:
-
Para adicionar uma chave SSH para um usuário:
Acessador de instâncias do Secure Source Manager (
roles/securesourcemanager.instanceAccessor) na instância do Secure Source Manager -
Para adicionar uma chave SSH para uma conta de serviço:
- Gerenciador de instâncias do Secure Source Manager (
roles/securesourcemanager.instanceManager) na instância do Secure Source Manager - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
- Gerenciador de instâncias do Secure Source Manager (
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esses papéis predefinidos contêm as permissões necessárias para autenticar usando chaves públicas SSH. Para acessar as permissões exatas que são necessárias, expanda a seção Permissões necessárias:
Permissões necessárias
As permissões a seguir são necessárias para autenticar usando chaves públicas SSH:
-
securesourcemanager.sshkeys.createAnyna instância do Secure Source Manager -
Para atribuir uma chave SSH a uma conta de serviço:
iam.serviceAccounts.actAsna conta de serviço
Essas permissões também podem ser concedidas com funções personalizadas ou outros papéis predefinidos.
Para informações sobre como conceder papéis do Secure Source Manager, consulte Controle de acesso com o IAM e Conceder acesso de instância aos usuários.
Gerar um par de chaves
Um par de chaves SSH consiste em uma chave privada que reside no seu sistema local e uma chave pública registrada Google Cloud.
Linux ou macOS
Instale OpenSSH no seu sistema local.
Em um prompt de comando, digite o seguinte:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Em que:
- USER_EMAIL é seu endereço de e-mail;
- KEY_TYPE é um dos campos
rsa,ecdsaoued25519.
Exemplo:
ssh-keygen -t rsa -C "user@example.com"Quando solicitado, insira um local e um nome de arquivo para o arquivo de chave pública. Para aceitar o local padrão e o nome de arquivo padrão, pressione Enter.
Quando solicitado, deixe a senha longa vazia e pressione Enter.
Windows
Se você não tiver, instale o cliente OpenSSH (incluído no Windows 10 e versões mais recentes) e o Git para Windows no seu sistema local. As instruções a seguir usam o OpenSSH e o Git para Windows.
Em um PowerShell ou prompt de comando, execute o seguinte comando:
ssh-keygen -t KEY_TYPE -C "USER_EMAIL"Em que:
- USER_EMAIL é seu endereço de e-mail;
- KEY_TYPE é um dos campos
rsa,ecdsaoued25519.
Exemplo:
ssh-keygen -t rsa -C "user@example.com"Quando solicitado, insira um local e um nome de arquivo para o arquivo de chave pública. Para aceitar o local padrão e o nome de arquivo (`%USERPROFILE%.ssh`), pressione Enter.
Quando solicitado, deixe a senha longa vazia e pressione Enter.
Adicionar chave SSH ao agente SSH
Para usar o par de chaves SSH gerado, adicione a chave ao agente SSH. Se você não salvou a chave no local padrão, adicioná-la ao agente SSH ajuda o SSH a localizar a chave.
Linux ou macOS
Inicie
ssh-agentem segundo plano:eval "$(ssh-agent -s)"O comando retorna o ID do processo do agente (PID), por exemplo:
Agent pid 3245Dependendo do seu ambiente, talvez seja necessário usar um comando diferente, por exemplo:
- Para usar o acesso raiz, execute
sudo -s -Hantes de iniciarssh-agent. - Para executar
ssh-agentdiretamente, useexec ssh-agent bashouexec ssh-agent zsh.
- Para usar o acesso raiz, execute
Adicione sua chave privada SSH ao
ssh-agent.ssh-add ~/.ssh/FILENAMEEm que
FILENAMEé o nome do arquivo de chave privada, por exemplo,id_rsaouid_ed25519.
Windows
Inicie
ssh-agent.Se você estiver usando o Git Bash, inicie
ssh-agent:eval "$(ssh-agent -s)"Se você estiver usando o PowerShell ou o prompt de comando, inicie o serviço
ssh-agent. No PowerShell, execute:Set-Service ssh-agent -StartupType Automatic; Start-Service ssh-agent
Adicione sua chave privada SSH ao
ssh-agent.Se você estiver usando o Git Bash:
ssh-add ~/.ssh/FILENAMESe você estiver usando o PowerShell ou o prompt de comando:
ssh-add $env:USERPROFILE\.ssh\FILENAME
Em que
FILENAMEé o nome do arquivo de chave privada, por exemplo,id_rsaouid_ed25519.
Adicionar chaves SSH para usuários
- Na interface da Web do Secure Source Manager, na página da instância ou do repositório, clique no menu mais opções.
Clique em Chaves SSH do usuário.
A página Chaves SSH do usuário é aberta e uma lista de todas as chaves criadas é exibida.
Na página Chaves SSH do usuário, clique em Adicionar chave.
Na página Adicionar chave SSH, insira os seguintes valores para a chave:
- Título: adicione um título descritivo para a chave.
Chave pública SSH: cole a string de chave pública. Para receber a string de chave pública, abra o arquivo de chave pública (
FILENAME.pub) em um editor de texto ou execute um dos seguintes comandos:Linux ou macOS
cat ~/.ssh/FILENAME.pubWindows
cat $env:USERPROFILE\.ssh\FILENAME.pubSubstitua
FILENAMEpelo nome do arquivo de chave.
É possível usar chaves SSH para autenticar qualquer repositório do Secure Source Manager, desde que você tenha as permissões necessárias nesse repositório.
Adicionar chaves SSH para contas de serviço
Para permitir o acesso programático ao repositório, adicione uma chave SSH para uma conta de serviço.
- Se você ainda não tem uma conta de serviço que quer usar, crie uma conta de serviço.
- Na interface da Web do Secure Source Manager, clique no menu mais opções.
- Clique em Chaves SSH da conta de serviço. A página Chaves SSH da conta de serviço é aberta e uma lista de todas as chaves adicionadas é exibida.
- Na página Chaves SSH da conta de serviço, clique em Adicionar chave.
Na página Adicionar chave SSH da conta de serviço, insira os seguintes valores para a chave:
- Título: um título descritivo para a chave
Conta de serviço: o e-mail da conta de serviço que você quer usar a chave SSH no formato
SA_NAME@PROJECT_ID.iam.gserviceaccount.comEm que
SA_NAMEé o nome da conta de serviço.PROJECT_IDé o ID do projeto em que a conta de serviço foi criada.
Chave pública SSH: sua chave SSH pública. Consulte Gerar um par de chaves para informações sobre como gerar um par de chaves SSH.
Se a conta de serviço não estiver no mesmo projeto que a instância do Secure Source Manager, conceda ao agente de serviço do Secure Source Manager um dos seguintes papéis ou permissões na conta de serviço que você quer usar:
- Permissão
iam.serviceAccounts.signJwt - Papel Criador de token da conta de serviço (
roles/iam.serviceAccountTokenCreator)
Execute o comando a seguir para adicionar uma política do IAM à conta de serviço do Secure Source Manager para conceder a ela o papel Criador de token da conta de serviço.
gcloud iam service-accounts add-iam-policy-binding SERVICE_ACCOUNT \ --member="serviceAccount:service-INSTANCE_PROJECT_NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com" \ --role="roles/iam.serviceAccountTokenCreator"Em que SERVICE_ACCOUNT é a conta de serviço que você quer usar e INSTANCE_PROJECT_NUMBER é o número do projeto da instância do Secure Source Manager.
O SERVICE_ACCOUNT precisa ser formatado como um ID numérico de conta de serviço ou como um e-mail, como: 123456789876543212345 ou my-iam-account@somedomain.com.
- Permissão