Para mais informações sobre a federação de identidade de colaboradores, consulte Federação de identidade de colaboradores.
Para informações sobre limitações da federação de identidade de colaboradores no Secure Source Manager, consulte Federação de identidade: produtos e limitações.
O Secure Source Manager é um serviço de locatário único. Uma única instância do Secure Source Manager só deve incluir usuários de um cliente doGoogle Cloud , a menos que várias empresas com uma relação contratual precisem usar uma única instância para colaboração.
Se você trabalha com várias empresas e quer colaborar com elas no código-fonte, recomendamos criar uma instância separada para cada uma.
Antes de começar
-
Faça login na sua Conta do Google.
Se você ainda não tiver uma, inscreva-se agora.
-
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init -
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 role
(
roles/resourcemanager.projectCreator), which contains theresourcemanager.projects.createpermission. Learn how to grant roles.
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 theserviceusage.services.enablepermission. Learn how to grant roles.-
Instale a CLI do Google Cloud.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na CLI gcloud com sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init
Criptografia de dados
Por padrão,o Google Cloud automaticamente criptografa os dados em repouso usandoGoogle-owned and Google-managed encryption keys. Se você tiver requisitos regulatórios ou de compliance específicos relacionados às chaves que protegem seus dados, crie instâncias do Secure Source Manager criptografadas com chaves de criptografia gerenciadas pelo cliente (CMEK).
Não armazene dados sensíveis em IDs de instância ou pares de chave-valor de rótulo porque eles não são criptografados com a CMEK.
Se você estiver criando sua primeira instância do Secure Source Manager no projeto, crie manualmente o agente de serviço do Secure Source Manager executando o seguinte comando:
gcloud beta services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
Aqui, PROJECT_ID é o ID do projeto em que você cria a instância do Secure Source Manager.
Depois de criar a conta de serviço por produto e por projeto (P4SA), conceda o papel de agente de serviço do 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 vai falhar.
Configurar a federação de identidade de colaboradores
Antes de criar uma instância, configure um pool e um provedor da Federação de Identidade de Colaboradores.
Configure seu provedor de pool de identidade da força de trabalho com os seguintes mapeamentos de atributos:
google.subjectgoogle.email
Criar uma instância
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- INSTANCE_ID: o nome da instância que você quer criar.
- LOCATION: a região em que você quer criar a instância. Para informações sobre os locais compatíveis, consulte Locais.
- PROJECT_ID: o ID do projeto em que você quer criar uma instância.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows (PowerShell)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Windows (cmd.exe)
gcloud source-manager instances create INSTANCE_ID --region=LOCATION --project=PROJECT_ID --enable-workforce-identity-federation
Uma operação de longa duração para criar instância é iniciada. A saída será assim:
Create request issued for [my-instance].
done: false
metadata:
'@type': type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata
apiVersion: v1
createTime: '2023-02-27T20:57:52.315609549Z'
requestedCancellation: false
target: projects/my-project/locations/us-central1/instances/my-instance
verb: create
name: projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
Em que projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e é o OPERATION_NAME.
Registre o OPERATION_NAME, porque você vai precisar dele para verificar o status da operação.
A criação da instância leva até 60 minutos.
API
Antes de executar esse comando, substitua os seguintes valores:
- INSTANCE_ID: o nome da instância que você quer criar.
- LOCATION: a região em que você quer criar a instância. Para informações sobre os locais compatíveis, consulte Locais.
- PROJECT_ID: o ID do projeto em que você quer criar uma instância.
Execute este 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}}"
Uma operação de longa duração para criar instância é iniciada. A saída será assim:
{
"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 em que a instância está localizada.
Registre o OPERATION_NAME porque você precisa usá-lo para verificar o status da operação.
A criação da instância leva até 60 minutos.
Terraform
O exemplo a seguir cria uma instância do Secure Source Manager com a federação de identidade de colaboradores ativada:
resource "google_secure_source_manager_instance" "instance" {
instance_id = "INSTANCE_ID"
location = "LOCATION"
project = "PROJECT_ID"
workforce_identity_federation_config {
enabled = true
}
}
Verificar o status da operação
gcloud
Antes de usar os dados do comando abaixo, faça estas substituições:
- OPERATION_NAME: o nome da operação na resposta do comando create.
- LOCATION: a região da instância.
Execute o seguinte comando:
Linux, macOS ou Cloud Shell
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows (PowerShell)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Windows (cmd.exe)
gcloud source-manager operations describe OPERATION_NAME --region=LOCATION
Quando a instância estiver pronta, a resposta será semelhante a esta:
"name": "projects/my-project/locations/us-central1/operations/operation-123456789012-5ec69948c0f2b-60dd727f-a9b97a2e",
"metadata": {
"@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata",
"createTime": "2022-11-01T14:31:32.420469714Z",
"endTime": "2022-11-01T14:48:34.140378114Z",
"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": "2022-11-01T14:31:32.416413630Z",
"updateTime": "2022-11-01T14:31:32.416413630Z",
"labels": {
"ldap": "user",
"source": "manual"
},
"state": "ACTIVE",
"hostConfig": {
"html": "my-instance-098765432109.us-central1.sourcemanager.dev",
"api": "my-instance-098765432109-api.us-central1.sourcemanager.dev",
"gitHttp": "my-instance-098765432109-git.us-central1.sourcemanager.dev"
}
}
Em que my-instance-098765432109.us-central1.sourcemanager.dev é o URL HTML da instância.
API
Antes de usar os dados da solicitação abaixo, faça as substituições a seguir:
- OPERATION_NAME: o nome da operação na resposta do comando create.
Método HTTP e URL:
GET https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
Para enviar a solicitação, expanda uma destas opções:
Quando a instância estiver pronta, a resposta será semelhante a esta:
"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 status de verificação bem-sucedida. Você precisa desse URL para acessar a instância pela interface da Web.
Acessar a instância
Depois que a instância for criada, acesse a interface da Web dela usando um navegador.
-
Para acessar a instância do Secure Source Manager pela interface da Web, copie o seguinte URL na barra de endereço do navegador.
INSTANCE_ID-PROJECT_NUMBER.LOCATION.sourcemanager.devSubstitua:
- INSTANCE_ID pelo nome da instância.
- PROJECT_NUMBER pelo número do projeto da instância Google Cloud. Para informações sobre como identificar projetos, consulte Identificar projetos.
- LOCATION com a região da instância.
Uma tela do OAuth vai aparecer pedindo o nome do provedor.
Insira o nome do provedor de identidade da força de trabalho no seguinte formato:
locations/global/workforcePools/POOL_ID/providers/PROVIDER_IDSubstitua:
POOL_IDcom o ID do pool da federação de identidade de colaboradores.PROVIDER_IDcom o ID do provedor da federação de identidade de colaboradores.
Para mais informações sobre pools e provedores da federação de identidade de colaboradores, consulte Gerenciar pools e provedores de identidade da federação de identidade de colaboradores.
Você vai precisar fazer login usando as credenciais do provedor.
Faça login usando as credenciais do provedor.
A interface da Web do Secure Source Manager é aberta. Aqui, você pode criar e visualizar repositórios, problemas e solicitações de envio.
Você precisa fazer login novamente na interface da Web depois que a duração da sessão no pool da federação de identidade de colaboradores expirar.
Criar sua configuração de login da CLI gcloud
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 seu 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 os comandos do Git para interagir com sua instância do Secure Source Manager. Para começar a usar o Git, consulte Usar o gerenciamento de código-fonte do Git.
A seguir
- Conceda acesso à instância aos usuários.
- Conceda acesso ao repositório para os usuários.
- Controle o acesso com o IAM.