Autenticar usando chaves públicas SSH

Usuários e contas de serviço podem usar chaves públicas SSH para autenticar em 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 é compatível com os tipos de chave SSH RSA, ECDSA e Ed25519.

Funções exigidas

Para receber as permissões necessárias para autenticar usando chaves públicas SSH, peça ao administrador para conceder a você os papéis do IAM a seguir:

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 conferir as permissões exatas necessárias, expanda a seção Permissões necessárias:

Permissões necessárias

As seguintes permissões são necessárias para autenticar usando chaves públicas SSH:

  • securesourcemanager.sshkeys.createAny na instância do Secure Source Manager
  • Para atribuir uma chave SSH a uma conta de serviço: iam.serviceAccounts.actAs na 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 à 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 no Google Cloud.

Linux ou macOS

  1. Instale o OpenSSH no seu sistema local.

  2. 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, ecdsa ou ed25519;

    Exemplo:

    ssh-keygen -t rsa -C "user@example.com"
    
    1. Quando solicitado, insira um local e um nome de arquivo para o arquivo de chave pública. Para aceitar o local e o nome de arquivo padrão, pressione Enter.

    2. Quando solicitado, deixe a senha longa vazia e pressione Enter.

Windows

  1. Instale o PuTTY no seu sistema local.

  2. No menu Iniciar do Windows, inicie o PuTTYGen.

  3. Na janela que é aberta, selecione o tipo de chave no campo Parâmetros.

  4. Clique em Gerar.

    O PuTTYGen exibe a string de chave pública gerada.

  5. Quando solicitado, deixe a senha longa vazia e pressione Enter.

  6. Para salvar o par de chaves que você gerou para seu sistema local, clique em Salvar chave pública e Salvar chave privada.

Adicionar chaves SSH para usuários

  1. Na interface da Web do Secure Source Manager, na página da instância ou do repositório, clique no menu Mais opções.
  2. 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.

  3. Na página Chaves SSH do usuário, clique em Adicionar chave.

  4. Na página Adicionar chave SSH, insira os seguintes valores para sua chave:

    1. Título: adicione um título descritivo para a chave.
    2. Chave pública SSH: cole a string da chave pública. Para receber sua string de chave pública, execute o seguinte comando:
    cat ~/.ssh/FILENAME.pub
    

    Em que FILENAME é o nome que você deu ao 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 nele.

Adicionar chaves SSH para contas de serviço

Para permitir o acesso programático ao seu repositório, adicione uma chave SSH para uma conta de serviço.

  1. Se você ainda não tiver uma conta de serviço que queira usar, crie uma.
  2. Na interface da Web do Secure Source Manager, clique no menu Mais opções.
  3. Clique em Chaves SSH da conta de serviço. A página Chaves SSH da conta de serviço é aberta, e uma lista das chaves adicionadas é exibida.
  4. Na página Chaves SSH da conta de serviço, clique em Adicionar chave.
  5. Na página Adicionar chave SSH da conta de serviço, insira os seguintes valores para sua chave:

    1. Título: um título descritivo para a chave
    2. 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.com

      Onde

      • SA_NAME é o nome da conta de serviço.
      • PROJECT_ID é o ID do projeto em que a conta de serviço foi criada.
    3. Chave pública SSH: sua chave pública SSH. Consulte Gerar um par de chaves para saber como gerar um par de chaves SSH.

  6. Se a conta de serviço não estiver no mesmo projeto da sua 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:

    • A 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 à sua conta de serviço do Secure Source Manager e conceder a ela o papel de 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 sua 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, assim: 123456789876543212345 ou my-iam-account@somedomain.com.

A seguir