Usar o gerenciamento de código-fonte do Git

O Secure Source Manager é compatível com todos os comandos de cliente do Git SCM e tem solicitações de pull e rastreamento de problemas integrados. A autenticação HTTPS e SSH são compatíveis.

Funções exigidas

Para receber as permissões necessárias para usar o Git e interagir com um repositório do Secure Source Manager, peça ao administrador para conceder a você os seguintes papéis do IAM:

Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.

Também é possível conseguir as permissões necessárias usando papéis personalizados 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.

Instalar o Git e a Google Cloud CLI

  1. Instale o Git.

  2. Se o instalador do Git pedir para Escolher um auxiliar de credenciais, selecione Nenhum (não usar um auxiliar de credenciais).

  3. Instale a CLI da gcloud.

  4. A versão 395.0.0 ou mais recente da CLI gcloud é necessária para usar o Git com HTTPS. Para verificar a versão da CLI gcloud, execute o seguinte comando:

    gcloud --version
    
  5. Para atualizar a CLI gcloud, execute o seguinte comando:

    gcloud components update
    
  6. Depois de atualizar, execute gcloud init para inicializar a CLI gcloud.

    Consulte a documentação da CLI gcloud sobre atualização de componentes para mais informações.

Configurar suas credenciais

Se você se autenticar no Secure Source Manager usando um provedor de identidade de terceiros e a federação de identidade de colaboradores, não será necessário concluir esta seção. Em vez disso, crie uma configuração de login do pool de identidades de colaboradores.

Adicione o auxiliar de autenticação do Secure Source Manager à sua configuração global do Git executando o seguinte comando:

Linux

git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh

Talvez as versões anteriores do Git não sejam compatíveis com caracteres curinga. Para adicionar o helper de autenticação sem caracteres curinga, execute o seguinte comando:

git config --global credential.'https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev'.helper gcloud.sh

Substitua:

  • INSTANCE_ID com o nome da sua instância do Secure Source Manager.
  • PROJECT_NUMBER pelo número do projeto. Para ajuda encontrar o número do projeto, consulte Identificar projetos.
  • LOCATION com a região da instância. Para mais informações sobre regiões, consulte Locais.

Windows

git config --global credential.https://*.*.sourcemanager.dev.helper gcloud.cmd

Talvez as versões anteriores do Git não sejam compatíveis com caracteres curinga. Para adicionar o helper de autenticação sem caracteres curinga, execute o seguinte comando:

git config --global credential.https://INSTANCE_ID-PROJECT_NUMBER-git.LOCATION.sourcemanager.dev.helper gcloud.cmd

Substitua:

  • INSTANCE_ID com o nome da sua instância do Secure Source Manager.
  • PROJECT_NUMBER pelo número do projeto. Para ajuda encontrando o número do projeto, consulte Como identificar projetos.
  • LOCATION com a região da instância. Para mais informações sobre regiões, consulte Locais.

O auxiliar de autenticação usa a CLI gcloud para buscar suas credenciaisGoogle Cloud ao usar comandos do Git com o Secure Source Manager.

Para fazer a reautenticação após a configuração inicial das credenciais, execute o seguinte comando da CLI gcloud:

gcloud auth login

Autenticar de uma VM do Compute Engine usando uma conta de serviço

É possível fazer a autenticação em uma máquina virtual (VM) do Compute Engine usando uma conta de serviço anexada.

Configurar a VM e a conta de serviço

Se você usar a conta de serviço padrão do Compute Engine, crie a VM com os escopos OAuth necessários:

gcloud compute instances create VM_NAME \
    --project=PROJECT_ID \
    --zone=ZONE \
    --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform

Substitua:

  • VM_NAME: o nome da VM.
  • PROJECT_ID: o ID do projeto Google Cloud .
  • ZONE: a zona da VM.

Se você usar uma conta de serviço personalizada, crie a conta e depois a VM.

  1. Crie uma conta de serviço:

    gcloud iam service-accounts create SA_NAME --project=PROJECT_ID
    

    Substitua SA_NAME por um nome para a conta de serviço.

  2. Conceda permissão para usar a conta de serviço. Para criar uma VM com uma conta de serviço, você precisa do papel de usuário da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço. Conceda esse papel ao principal que está criando a VM:

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

    Substitua USER_EMAIL pelo e-mail do usuário que está criando a VM.

  3. Crie a VM:

    gcloud compute instances create VM_NAME \
        --project=PROJECT_ID \
        --zone=ZONE \
        --scopes=openid,https://www.googleapis.com/auth/userinfo.profile,https://www.googleapis.com/auth/userinfo.email,https://www.googleapis.com/auth/cloud-platform \
        --service-account=SA_NAME@PROJECT_ID.iam.gserviceaccount.com
    

Conceder papéis do IAM à conta de serviço

Conceda à conta de serviço acesso à instância e ao repositório do Secure Source Manager:

  1. Conceder acesso à instância:

    SA_EMAIL=$(gcloud compute instances describe VM_NAME --project=PROJECT_ID --zone=ZONE --format="get(serviceAccounts[0].email)")
    gcloud projects add-iam-policy-binding PROJECT_ID \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.instanceAccessor
    
  2. Conceda acesso de leitura ao repositório.

    Para conceder acesso de leitura a um repositório específico, execute o seguinte comando:

    gcloud ssm repos add-iam-policy-binding REPOSITORY_ID \
        --instance=INSTANCE_ID \
        --location=LOCATION \
        --member="serviceAccount:$SA_EMAIL" \
        --role=roles/securesourcemanager.repoReader
    

    Substitua:

    • REPOSITORY_ID: o ID do repositório.
    • INSTANCE_ID: o ID da instância do Secure Source Manager.
    • LOCATION: a região da instância do Secure Source Manager.

    Para conceder acesso de gravação, use a função roles/securesourcemanager.repoWriter.

    É recomendável conceder acesso no nível do repositório para seguir o princípio de privilégio mínimo. Se você precisar conceder acesso a todos os repositórios em um projeto, consulte Controle de acesso com o IAM.

Pode levar alguns minutos para que as permissões do IAM sejam propagadas.

Configurar o Git na VM

  1. Conecte-se à VM usando SSH:

    gcloud compute ssh VM_NAME --project=PROJECT_ID --zone=ZONE
    
  2. Na VM, instale o Git:

    sudo apt-get install git
    
  3. Na VM, configure o auxiliar de credenciais do Git conforme descrito em Configurar suas credenciais. Por exemplo, no Linux:

    git config --global credential.'https://*.*.sourcemanager.dev'.helper gcloud.sh
    

Depois de configurar o auxiliar de credenciais, o Git usa as credenciais padrão do aplicativo da conta de serviço da VM para autenticar no Secure Source Manager. Agora você pode clonar um repositório. Você precisa usar o URL do repositório HTTPS para autenticar com o Application Default Credentials.

Criar uma configuração de login do pool de identidades da força de trabalho

Não é necessário concluir esta seção, a menos que você esteja usando a federação de identidade de colaboradores para autenticar o Secure Source Manager com um provedor de identidade terceirizado.

Para autenticar com as credenciais do pool de identidades da força de trabalho na sua instância do Secure Source Manager usando comandos da CLI gcloud ou do Git, crie uma configuração de login com o pool de identidades da força de trabalho.

Para criar uma configuração de login do pool de identidades de colaboradores, siga as instruções em Receber tokens de curta duração para a federação de identidade de colaboradores e crie um login baseado em navegador com a CLI gcloud.

Depois de se autenticar, use comandos do Git para interagir com sua instância do Secure Source Manager. Você precisa se autenticar novamente quando a duração da sessão do seu pool de identidades da força de trabalho expirar.

Clonar um repositório

Clone um repositório executando o seguinte comando:

git clone REPOSITORY_URL

REPOSITORY_URL é o URL HTTPS ou SSH exibido na parte de cima da página do repositório que você quer clonar.

Enviar um repositório atual para o Secure Source Manager

É necessário criar um repositório do Secure Source Manager para atuar como um remoto antes de enviar para ele.

Para enviar seu repositório Git atual para um repositório vazio do Secure Source Manager, adicione o repositório do Secure Source Manager como um controle remoto e envie para ele.

  1. Para definir o repositório do Secure Source Manager como um remoto, execute o seguinte comando:

    git remote add origin REPOSITORY_URL
    

    Em que REPOSITORY_URL é o URL HTTPS ou SSH exibido na parte de cima da página do repositório.

  2. Para enviar ao repositório, execute o seguinte comando:

    git push -u origin main
    

Para mais informações sobre o gerenciamento de código-fonte do Git, leia a documentação do Git.

A seguir