Use a gestão de código fonte do Git

O Secure Source Manager suporta todos os comandos do cliente Git SCM e tem pedidos de obtenção e acompanhamento de problemas incorporados. O HTTPS e a autenticação SSH são suportados.

Funções necessárias

Para receber as autorizações de que precisa para usar o Git para interagir com um repositório do Secure Source Manager, peça ao seu administrador que lhe conceda as seguintes funções do IAM:

Para mais informações sobre a atribuição de funções, consulte o artigo Faça a gestão do acesso a projetos, pastas e organizações.

Também pode conseguir as autorizações necessárias através de funções personalizadas ou outras funções predefinidas.

Para obter informações sobre a concessão de funções do Secure Source Manager, consulte os artigos Controlo de acesso com o IAM e Conceda aos utilizadores acesso à instância.

Instale o Git e a CLI Google Cloud

  1. Instale o Git.

  2. Se lhe for pedido que escolha um auxiliar de credenciais pelo instalador do Git, selecione Nenhum (não usar um auxiliar de credenciais).

  3. Instale a CLI gcloud.

  4. É necessária a versão 395.0.0 ou posterior da CLI gcloud 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. Após a atualização, execute gcloud init para inicializar a CLI gcloud.

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

Configure as suas credenciais

Se fizer a autenticação no Secure Source Manager através de um fornecedor de identidade de terceiros e da Workforce Identity Federation, não tem de concluir esta secção. Em alternativa, tem de criar uma configuração de início de sessão do pool de identidades da força de trabalho.

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

Linux

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

As versões anteriores do Git podem não suportar carateres universais. Para adicionar o auxiliar de autenticação sem carateres universais, execute o seguinte comando:

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

Substitua o seguinte:

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

Windows

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

As versões anteriores do Git podem não suportar carateres universais. Para adicionar o auxiliar de autenticação sem carateres universais, execute o seguinte comando:

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

Substitua o seguinte:

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

O auxiliar de autenticação usa a CLI gcloud para obter as suas Google Cloud credenciais quando usa comandos Git com o Secure Source Manager.

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

gcloud auth login

Autentique a partir de uma VM do Compute Engine através de uma conta de serviço

Pode autenticar a partir de uma máquina virtual (VM) do Compute Engine através de uma conta de serviço anexada.

Configure a VM e a conta de serviço

Se usar a conta de serviço predefinida do Compute Engine, crie a VM com os âmbitos 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 o seguinte:

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

Se usar uma conta de serviço personalizada, crie a conta de serviço e, em seguida, crie 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 autorização para usar a conta de serviço. Para criar uma VM com uma conta de serviço, precisa da função Utilizador da conta de serviço (roles/iam.serviceAccountUser) na conta de serviço. Conceda esta função ao principal que está a criar 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 email do utilizador que está a criar 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
    

Conceda funções 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. Conceder 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 o seguinte:

    • 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 escrita, use a função roles/securesourcemanager.repoWriter.

    Recomendamos que conceda acesso ao nível do repositório para seguir o princípio do menor privilégio. Se precisar de conceder acesso a todos os repositórios num projeto, consulte o artigo Controlo de acesso com a IAM.

As autorizações de IAM podem demorar alguns minutos a propagar-se.

Configure o Git na VM

  1. Estabeleça ligação à VM através de 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 Configure as 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 predefinidas da aplicação da conta de serviço da VM para autenticar no Secure Source Manager. Já pode clonar um repositório. Tem de usar o URL do repositório HTTPS para fazer a autenticação com as credenciais padrão da aplicação.

Crie uma configuração de início de sessão do Workload Identity Pool

Não tem de preencher esta secção, a menos que esteja a usar a federação de identidades da força de trabalho para fazer a autenticação no Secure Source Manager com um fornecedor de identidade de terceiros.

Para se autenticar com as credenciais do conjunto de identidades da força de trabalho na instância do Secure Source Manager através de comandos da CLI gcloud ou comandos Git, tem de criar uma configuração de início de sessão com o conjunto de identidades da força de trabalho.

Para criar uma configuração de início de sessão do Workload Identity Pool, siga as instruções em Obtenha tokens de curta duração para a federação de identidade da força de trabalho para criar um início de sessão baseado no navegador com a CLI gcloud.

Depois de se autenticar, pode usar comandos Git para interagir com a sua instância do Secure Source Manager. Tem de voltar a autenticar-se quando a duração da sessão do seu grupo de identidades da força de trabalho expirar.

Clone um repositório

Clone um repositório executando o seguinte comando:

git clone REPOSITORY_URL

Onde REPOSITORY_URL é o URL HTTPS ou SSH apresentado na parte superior da página do repositório que quer clonar.

Envie um repositório existente para o Secure Source Manager

Tem de criar um repositório do Secure Source Manager para atuar como um repositório remoto antes de poder enviar conteúdo para o mesmo.

Para enviar o seu repositório Git existente para um repositório do Secure Source Manager vazio, tem de adicionar o repositório do Secure Source Manager como um repositório remoto e enviá-lo.

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

    git remote add origin REPOSITORY_URL
    

    Onde REPOSITORY_URL é o URL HTTPS ou SSH apresentado na parte superior da página do repositório.

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

    git push -u origin main
    

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

O que se segue?