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
-
Sign in to your Google Account.
If you don't already have one, sign up for a new account.
-
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. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a 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. -
Install the Google Cloud CLI.
-
Se estiver a usar um fornecedor de identidade (IdP) externo, tem primeiro de iniciar sessão na CLI gcloud com a sua identidade federada.
-
Para inicializar a CLI gcloud, execute o seguinte comando:
gcloud init Configure o fornecedor do Workforce Identity Pool com os seguintes mapeamentos de atributos:
google.subjectgoogle.email
- 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 o artigo Localizações.
- PROJECT_ID: o ID do projeto no qual quer criar uma instância.
- 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 no qual quer criar uma instância.
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.- OPERATION_NAME: o nome da operação da resposta do comando create.
- LOCATION: a região da instância.
- OPERATION_NAME: o nome da operação da resposta do comando create.
-
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.devSubstitua 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.
Introduza o nome do fornecedor de identidade da força de trabalho no seguinte formato:
locations/global/workforcePools/POOL_ID/providers/PROVIDER_IDSubstitua o seguinte:
POOL_IDcom o ID do seu Workforce Identity Federation Pool.PROVIDER_IDcom 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 Workforce Identity Federation, consulte o artigo Faça a gestão de fornecedores e Workload Identity Pools da Workforce Identity Federation.
É-lhe pedido que inicie sessão com as credenciais do seu fornecedor.
Inicie sessão com as credenciais do seu fornecedor.
A interface Web do Secure Source Manager é aberta. Aqui, pode criar e ver repositórios, problemas e pedidos de envio.
Tem de iniciar sessão novamente através da interface Web após a expiração da duração da sessão no seu conjunto de federação de identidades de força de trabalho.
- Conceda aos utilizadores acesso à instância.
- Conceda acesso ao repositório aos utilizadores.
- Controle o acesso com o IAM.
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 chave-valor de etiquetas, porque não são encriptados com CMEK.
Se estiver a criar a 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 services identity create \
--service=securesourcemanager.googleapis.com \
--project=PROJECT_ID
Aqui, PROJECT_ID é o ID do projeto onde cria a 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.
Crie uma instância
gcloud
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
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
É iniciada uma operação de criação de instância de longa duração. O resultado tem o seguinte aspeto:
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
Onde projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e é o OPERATION_NAME.
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.
API
Antes de executar este comando, substitua os seguintes valores:
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 é 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:
Registe o OPERATION_NAME porque tem de o usar para verificar o estado da operação.
A criação da instância demora até 60 minutos.
Terraform
O exemplo seguinte cria uma instância do Secure Source Manager com a Workforce Identity Federation ativada:
resource "google_secure_source_manager_instance" "instance" {
instance_id = "INSTANCE_ID"
location = "LOCATION"
project = "PROJECT_ID"
workforce_identity_federation_config {
enabled = true
}
}
Verifique o estado da operação
gcloud
Antes de usar qualquer um dos dados de comandos abaixo, faça as seguintes substituições:
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 à 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": "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 qualquer um dos dados do pedido, faça as seguintes substituições:
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 do estado da verificação bem-sucedida. 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.
Crie a sua 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 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, consulte o artigo Use Git source code management.