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.
Para criar uma instância com o VPC Service Controls ativado, consulte Configurar o Secure Source Manager em um perímetro do VPC Service Controls.
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.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Enable the Secure Source Manager API.
-
Install the Google Cloud CLI.
-
Ao usar um provedor de identidade (IdP) externo, primeiro faça login na gcloud CLI com sua identidade federada.
-
Para inicializar a gcloud CLI, execute o seguinte comando:
gcloud init
- Instale o componente "beta" da Google Cloud CLI:
gcloud components install beta
Execute o comando a seguir para criar uma instância. Talvez seja necessário fazer a autenticação na CLI gcloud.
gcloud beta source-manager instances create INSTANCE_ID \ --region=LOCATION \ --project=PROJECT_ID \ --kms-key=projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY
Em que:
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.-kms-key
é uma flag opcional. Inclua se quiser usar sua própria chave de criptografia gerenciada pelo cliente (CMEK) para criar a instância. As chaves CMEK precisam estar no mesmo local em que você está criando a instância, mas podem estar em um projeto diferente. Omita essa flag se quiser usar a criptografia padrão do Google. Se você quiser criptografar seus dados usando CMEK, substitua o seguinte:KEY_PROJECT
com o projeto em que você criou a chave.KEY_LOCATION
com o local da chave.KEYRING_NAME
pelo nome do keyring;KEY
pelo nome da chave.
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
é oOPERATION_NAME
.A criação da instância leva até 60 minutos.
Anote o
OPERATION_NAME
, porque você vai precisar dele para verificar o status da operação.Verifique o status da operação
create
executando o seguinte comando:gcloud beta source-manager operations describe OPERATION_NAME \ --region=LOCATION
Substitua:
OPERATION_NAME
com o nome da operação da resposta do comando create.LOCATION
com a região em que você quer criar a instância. Para informações sobre os locais compatíveis, consulte Locais.
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/test", "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/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }
Em que
test-098765432109.us-central1.sourcemanager.dev
é o URL HTML da instância.Copie o URL HTML do comando de verificação de status criado. Você vai precisar desse URL para acessar a instância pela interface da Web.
Execute o comando a seguir para criar uma instância. Talvez seja necessário fazer a autenticação na CLI gcloud.
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 '{ "kms_key":"projects/KEY_PROJECT/locations/KEY_LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY"}'
Em que:
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.-d
é uma flag de dados HTTP POST opcional que pode ser usada para especificar uma chave CMEK para criptografar sua instância. Omita essa flag se quiser usar a criptografia padrão do Google. Se você quiser criptografar seus dados usando CMEK, substitua o seguinte:KEY_PROJECT
com o projeto em que você criou a chave.KEY_LOCATION
com o local da chave.KEYRING_NAME
pelo nome do keyring;KEY
pelo nome da chave.
Uma operação de longa duração para criar instância é iniciada. A saída será assim:
{ "name": "projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e", "metadata": { "@type": "type.googleapis.com/google.cloud.securesourcemanager.v1.OperationMetadata", "createTime": "2022-11-01T14:31:32.420469714Z", "target": "projects/my-project/locations/us-central1/instances/test", "verb": "create", "requestedCancellation": false, "apiVersion": "v1" }, "done": false }
Em que
projects/my-project/locations/us-central1/operations/operation-1234567894561-5ec69948c0f2b-60dd727f-a9b97a2e
é oOPERATION_NAME
.A criação da instância leva até 60 minutos.
Copie o
OPERATION_NAME
.Verifique o status da operação de criação executando o seguinte comando:
curl \ -X GET \ -H "Authorization: Bearer $(gcloud auth print-access-token)" \ https://securesourcemanager.googleapis.com/v1/OPERATION_NAME
Em que OPERATION_NAME é o nome da operação da resposta ao comando de criação.
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/test", "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/test", "createTime": "2022-11-01T14:31:32.416413630Z", "updateTime": "2022-11-01T14:31:32.416413630Z", "labels": { "ldap": "user", "source": "manual" }, "state": "ACTIVE", "hostConfig": { "html": "test-098765432109.us-central1.sourcemanager.dev", "api": "test-098765432109-api.us-central1.sourcemanager.dev", "gitHttp": "test-098765432109-git.us-central1.sourcemanager.dev" } } }
Em que
test-098765432109.us-central1.sourcemanager.dev
é o URL HTML da instância.Copie o URL HTML do comando de verificação de status criado. Você vai precisar desse URL para acessar a instância pela interface da Web.
-
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.dev
Substitua:
- INSTANCE_ID pelo nome da instância.
- PROJECT_NUMBER pelo número do projeto Google Cloud da instância. Para informações sobre como identificar projetos, consulte Identificar projetos.
- LOCATION com a região da instância.
Uma tela do OAuth vai aparecer perguntando se você quer dar acesso à sua Conta do Google para
sourcemanager.dev
.Clique no botão Permitir.
A interface da Web do Secure Source Manager é aberta. É possível criar e visualizar repositórios e todos os problemas e solicitações de pull associados na interface da Web.
- Conceda acesso à instância aos usuários.
- Crie e clone um repositório.
- Conceda acesso ao repositório para os usuários.
- Controle o acesso com o IAM.
Funções exigidas
Para receber as permissões necessárias para criar uma instância do Secure Source Manager,
peça ao administrador para conceder a você o papel do IAM de
Proprietário da instância do Secure Source Manager (roles/securesourcemanager.instanceOwner
)
no projeto Google Cloud .
As funções do Secure Source Manager não aparecem no console Google Cloud até que sejam concedidas a um principal. Para conceder um papel do Secure Source Manager pela primeira vez, consulte Conceder e revogar papéis do IAM.
Criptografia de dados
Por padrão,o Google Cloud automaticamente criptografa os dados em repouso usando chaves de criptografia gerenciadas pelo Google. 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, será necessário criar 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
Em que PROJECT_ID
é o ID do projeto em que você vai
criar sua 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.
Criar uma instância
Para criar uma instância:
CLI da gcloud
API
Acessar uma instância
Depois que a instância for criada, acesse a interface da Web dela usando um navegador.
Para criar repositórios na instância, você precisa ter o papel Criador de repositórios (roles/securesourcemanager.repoCreator
) no projeto da instância e o papel Criador de repositórios da instância (roles/securesourcemanager.instanceRepositoryCreator
) na instância do Secure Source Manager.