Crie uma instância do Secure Source Manager para usar com identidades federadas

Este documento descreve como criar uma instância do Secure Source Manager usando a federação de identidades da força de trabalho para utilização com um fornecedor de identidades (IdP) externo.

Para mais informações sobre a federação de identidade da força de trabalho, consulte o artigo Federação de identidade da força de trabalho.

Para ver informações sobre as limitações da federação de identidade da força de trabalho no Secure Source Manager, consulte o artigo Federação de identidade: produtos e limitações.

O Secure Source Manager é um serviço de inquilino único. Uma única instância do Secure Source Manager só deve incluir utilizadores de um único cliente, a menos que várias empresas com uma relação contratual precisem de usar uma única instância para colaboração.Google Cloud

Se estiver a trabalhar com várias empresas e quiser colaborar com elas no código fonte, recomendamos que crie uma instância separada para cada empresa.

Antes de começar

  1. Sign in to your Google Account.

    If you don't already have one, sign up for a new account.

  2. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  3. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  4. Install the Google Cloud CLI.

  5. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  6. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  7. In the Google Cloud console, on the project selector page, select or create a Google Cloud project.

    Roles required to select or create a project

    • Select a project: Selecting a project doesn't require a specific IAM role—you can select any project that you've been granted a role on.
    • Create a project: To create a project, you need the Project Creator (roles/resourcemanager.projectCreator), which contains the resourcemanager.projects.create permission. Learn how to grant roles.

    Go to project selector

  8. Enable the Secure Source Manager API.

    Roles required to enable APIs

    To enable APIs, you need the Service Usage Admin IAM role (roles/serviceusage.serviceUsageAdmin), which contains the serviceusage.services.enable permission. Learn how to grant roles.

    Enable the API

  9. Install the Google Cloud CLI.

  10. Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.

  11. Para inicializar a CLI gcloud, execute o seguinte comando:

    gcloud init
  12. Instale o componente da betaCLI do Google Cloud:
    gcloud components install beta
  13. Encriptação de dados

    Por predefinição, Google Cloud encripta automaticamente os dados em repouso através de Google-owned and Google-managed encryption keys. Se tiver requisitos de conformidade ou regulamentares específicos relacionados com as chaves que protegem os seus dados, pode criar instâncias do Secure Source Manager encriptadas com chaves de encriptação geridas pelo cliente (CMEK).

    Não armazene dados confidenciais em IDs de instâncias nem em pares de chave/valor de etiquetas, uma vez que não são encriptados com CMEK.

    Se estiver a criar a sua primeira instância do Secure Source Manager no seu projeto, tem de criar manualmente o agente do serviço do Secure Source Manager executando o seguinte comando:

    gcloud beta services identity create \
        --service=securesourcemanager.googleapis.com \
        --project=PROJECT_ID
    

    Em que PROJECT_ID é o ID do projeto onde vai criar a sua instância do Secure Source Manager.

    Depois de criar a conta de serviço por produto e por projeto (P4SA), tem de conceder a função de agente do serviço Secure Source Manager (roles/securesourcemanager.serviceAgent) ao principal service-PROJECT-NUMBER@gcp-sa-sourcemanager.iam.gserviceaccount.com Caso contrário, a criação da instância falha.

    Configure a federação de identidade da força de trabalho

    Antes de criar uma instância, tem de configurar um Workforce Identity Federation pool e um fornecedor.

    1. Crie um Workload Identity Pool.

    2. Configure o fornecedor do Workforce Identity Pool com os seguintes mapeamentos de atributos:

      • google.subject
      • google.email

    Crie uma instância

    Antes de executar o comando, faça as seguintes substituições:

    • INSTANCE_ID: o nome da instância que quer criar.
    • LOCATION: a região onde quer criar a instância. Para ver informações sobre as localizações suportadas, consulte a secção Localizações.
    • PROJECT_ID: o ID do projeto do projeto no qual quer criar uma instância.

    Execute o seguinte comando:

    curl \
        -X POST -H "Authorization: Bearer $(gcloud auth print-access-token)" \
        https://securesourcemanager.googleapis.com/v1/projects/PROJECT_ID/locations/LOCATION/instances?instance_id=INSTANCE_ID \
        -H "Content-Type: application/json" \
        -d "{workforce_identity_federation_config: {enabled: true}}"
    
    

    É iniciada uma operação de criação de instância de longa duração. O resultado tem um aspeto semelhante ao seguinte:

    {
    "name": "OPERATION_NAME",
    "metadata": {
      "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
      "createTime": "2022-11-01T14:31:32.420469714Z",
      "target": "projects/PROJECT_ID/locations/LOCATION/instances/INSTANCE_ID",
      "verb": "create",
      "requestedCancellation": false,
      "apiVersion": "v1"
    },
    "done": false
    }
    

    Este exemplo de saída inclui os seguintes valores:

    • OPERATION_NAME: o nome da operação, por exemplo, projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e.
    • PROJECT_ID: o Google Cloud projeto.
    • LOCATION: a região onde a instância está localizada.

    Registe o OPERATION_NAME, uma vez que vai precisar de o usar para verificar o estado da operação.

    A criação da instância demora até 60 minutos.

    Verifique o estado da operação de criação

    Antes de usar qualquer um dos dados do pedido, faça as seguintes substituições:

    • OPERATION_NAME: o nome da operação da resposta do comando create.

    Método HTTP e URL:

    GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME

    Para enviar o seu pedido, expanda uma destas opções:

    Quando a instância estiver pronta, a resposta será semelhante à seguinte:

      "name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
      "metadata": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
        "createTime": "2024-10-28T15:37:39.009812863Z",
        "endTime": "2024-10-28T16:10:58.416640259Z",
        "target": "projects/my-project/locations/us-central1/instances/my-instance",
        "verb": "create",
        "requestedCancellation": false,
        "apiVersion": "v1"
      },
      "done": true,
      "response": {
        "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.Instance",
        "name": "projects/my-project/locations/us-central1/instances/my-instance",
        "createTime": "2024-10-28T15:37:39.004550840Z",
        "updateTime": "2024-10-28T15:37:39.867857246Z",
        "state": "ACTIVE",
        "hostConfig": {
          "html": "my-instance-326202322590.us-central1.sourcemanager.dev",
          "api": "my-instance-326202322590-api.us-central1.sourcemanager.dev",
          "gitHttp": "my-instance-326202322590-git.us-central1.sourcemanager.dev",
          "gitSsh": "my-instance-326202322590-ssh.us-central1.sourcemanager.dev"
        },
        "workforceIdentityFederationConfig": {
          "enabled": true
        }
      }
    

    Em que my-instance-098765432109.us-central1.sourcemanager.dev é o URL HTML da instância.

    Copie o URL HTML da resposta de verificação de estado criada com êxito. Precisa deste URL para aceder à instância através da respetiva interface Web.

    Aceda à instância

    Depois de criar a instância, pode aceder à mesma através da respetiva interface Web com um navegador.

    1. Para aceder à instância do Secure Source Manager através da respetiva interface Web, copie o seguinte URL para a barra de endereço do navegador.

      INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.dev

      Substitua o seguinte:

      • INSTANCE_ID com o nome da instância.
      • PROJECT_NUMBER com o número do projeto Google Cloud da instância. Para obter informações sobre a identificação de projetos, consulte o artigo Identificar projetos.
      • LOCATION com a região da instância.

      É apresentado um ecrã OAuth a pedir o nome do seu fornecedor.

    2. Introduza o nome do seu fornecedor de identidade da força de trabalho no seguinte formato:

      locations/global/workforcePools/POOL_ID/providers/PROVIDER_ID
      

      Substitua o seguinte:

      • POOL_ID com o ID do pool da federação de identidade da força de trabalho.
      • PROVIDER_ID com o ID do fornecedor da federação de identidade da força de trabalho.

      Para mais informações sobre os fornecedores e os Workload Identity Pools da federação de identidade da força de trabalho, consulte o artigo Faça a gestão de fornecedores e Workload Identity Pools da federação de identidade da força de trabalho.

      É-lhe pedido que inicie sessão com as credenciais do seu fornecedor.

    3. Inicie sessão com as credenciais do seu fornecedor.

    4. A interface Web do Secure Source Manager é aberta. Pode criar e ver repositórios, bem como todos os problemas e pedidos de obtenção associados, a partir da interface Web.

      Tem de iniciar sessão novamente através da interface Web após o prazo de duração da sessão definido no seu conjunto de federação de identidades da força de trabalho expirar.

    Crie a configuração de início de sessão da CLI gcloud

    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 do 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. Para começar a usar o Git, siga as instruções em Use o sistema de gestão de código-fonte Git.

    O que se segue?