Integração com o Assured OSS para segurança de código

Software de código aberto Assured (Assured OSS) permite aumentar a segurança do código usando os pacotes OSS que o Google usa para os próprios fluxos de trabalho do desenvolvedor. Ao usar o Assured OSS, desenvolvedores podem aproveitar o conhecimento e a experiência em segurança O Google aplica a proteção das próprias dependências de código aberto.

Ao integrar o Assured OSS ao Security Command Center, você pode fazer o seguintes:

  • Escolha entre mais de 3.700 Java e Python selecionados e mais populares pacotes de machine learning, incluindo machine learning projetos como TensorFlow, Pandas e Scikit-learn.
  • Configure um proxy seguro para fazer o download de todo o código Java, Python e JavaScript com atestados do Assured OSS, tornando o Google um fornecedor conhecido e confiável.
  • Use as SBOMs e VEX no Assured OSS fornecidas no padrão do setor formatos como SPDX e CycloneDX para saber mais sobre os ingredientes.
  • Aumentar a confiança na integridade dos pacotes que você está usando por uma procedência assinada e inviolável do Google.
  • Reduza o risco de segurança, já que o Google verifica, encontra e corrige ativamente novos vulnerabilidades em pacotes selecionados.

Antes de começar

Conclua essas tarefas antes de concluir as tarefas restantes nesta página.

Ativar o nível Enterprise do Security Command Center

Confirme se a Security Command Center Enterprise nível é ativado no no nível da organização e que concluiu as seis primeiras etapas do guia de configuração.

Configurar permissões no nível da organização

É necessário configurar permissões nos níveis da organização e do projeto.

  1. Verifique se você tem os seguintes papéis na organização: Security Center Admin, Organization Admin

    Verificar os papéis

    1. No console do Google Cloud, abra a página IAM.

      Acessar IAM
    2. Selecionar uma organização.
    3. Na coluna Principal, encontre a linha que contém seu endereço de e-mail.

      Caso seu endereço de e-mail não esteja nessa coluna, isso significa que você não tem papéis.

    4. Na coluna Papel da linha com seu endereço de e-mail, verifique se a lista de papéis inclui os papéis necessários.

    Conceder os papéis

    1. No console do Google Cloud, abra a página IAM.

      Acesse o IAM
    2. Selecionar uma organização.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos participantes, digite seu endereço de e-mail.
    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Save.

Configurar permissões no nível do projeto

  1. Verifique se você tem os seguintes papéis no projeto: Service Usage Admin, Service Account Admin, Project IAM Admin

    Verificar os papéis

    1. No console do Google Cloud, abra a página IAM.

      Acessar IAM
    2. Selecionar um projeto.
    3. Na coluna Principal, encontre a linha que contém seu endereço de e-mail.

      Caso seu endereço de e-mail não esteja nessa coluna, isso significa que você não tem papéis.

    4. Na coluna Papel da linha com seu endereço de e-mail, verifique se a lista de papéis inclui os papéis necessários.

    Conceder os papéis

    1. No console do Google Cloud, abra a página IAM.

      Acesse o IAM
    2. Selecionar um projeto.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos participantes, digite seu endereço de e-mail.
    5. Na lista Selecionar um papel, escolha um.
    6. Para conceder outros papéis, clique em Adicionar outro papel e adicione cada papel adicional.
    7. Clique em Save.

Configurar a Google Cloud CLI

É possível usar as amostras da CLI do gcloud nesta página de um dos seguintes ambientes de desenvolvimento:

  • Cloud Shell: para usar um terminal on-line com a CLI gcloud já configurada, ative o Cloud Shell.

    Na parte de baixo desta página, uma sessão do Cloud Shell é iniciada e exibe um prompt de linha de comando. A inicialização da sessão pode levar alguns segundos.

  • Shell local: para usar a CLI da gcloud em um ambiente de desenvolvimento local, instale e inicialize a CLI gcloud.

Configurar o Assured OSS

Console

  1. No console do Google Cloud, acesse a página Visão geral de riscos do Security Command Center.

    Acessar Visão geral de riscos

  2. Verifique se você está visualizando a organização para a qual ativou o Nível Security Command Center Enterprise ativado.

  3. Clique em Ver o guia de configuração.

  4. Clique em Configurar segurança do código.

  5. Selecione uma conta de serviço nova ou as atuais que você quer adicionar as permissões de software de código aberto do Assured.

  6. Selecione o projeto do Google Cloud em que você quer localizar a Recursos do Assured OSS.

  7. Clique em Set up Assured OSS (Configurar o Assured OSS).

    O processo de configuração conclui automaticamente o seguinte:

    • Se selecionado, cria a nova conta de serviço assuredoss@PROJECT_ID.gservicesaccount.com:
    • Atribui o papel de usuário do Assured OSS à conta de serviço designada para com o Assured OSS.
    • Atribui o papel de administrador do Assured OSS à conta de usuário conectada para que a conta possa configurar o serviço.
    • Ativa a API Assured Open Source Software e, caso ainda não esteja ativada, a API Artifact Registry.
    • Configura o serviço de proxy do Assured OSS em um Instância do Artifact Registry no projeto selecionado. Um repositório é fornecido para cada linguagem (Java, Python e JavaScript). Esses repositórios podem extrair pacotes automaticamente no portfólio selecionado. Se um pacote não estiver disponível como parte portfólio selecionado, os repositórios redirecionam a solicitação para o repositórios canônicos. O serviço de proxy é compatível apenas com a região dos EUA.
    • Concede a você e à conta de serviço permissões para acessar o pacote metadados e notificações de projetos de propriedade do Google.
  8. Criar uma conta de serviço chave para cada conta de serviço designada do Assured OSS e faça o download da chave no formato JSON.

  9. Na linha de comando da sua máquina local, execute o comando a seguir no arquivo de chave transferido por download para string codificada em base64:

    base64 KEY_FILENAME.json
    

    Substitua KEY_FILENAME.json pelo nome do chave da conta de serviço que você transferiu por download.

    Você precisa da string codificada em base64 ao configurar um repositório remoto para Assured OSS.

  10. Para fazer o download dos pacotes, use os endpoints que O Assured OSS provisiona para cada idioma. Anote esses endpoints para uso posterior.

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Substitua PROJECT_ID pelo ID do projeto que que você selecionou ao configurar o Assured OSS.

  11. Clique em Next. Configuração Assured OSS (link em inglês) com o gerenciador de repositório de artefatos da sua organização, como JFrog Artifactory ou Sonatype Nexus.

gcloud

  1. Faça a autenticação no Google Cloud com uma conta de usuário que você quer usar para ativar o Assured OSS:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login
    
  2. Procure o projeto em que você quer localizar o Recursos do Assured OSS:

    gcloud alpha projects search --query="displayName=PROJECT_NAME"
    

    Substitua PROJECT_NAME pelo nome do projeto.

  3. Defina o projeto em que você quer localizar o Assured OSS recursos:

    gcloud config set project PROJECT_ID
    

    Substitua PROJECT_ID pelo identificador do projeto.

  4. Conceda papéis à conta de usuário para configurar o Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/assuredoss.admin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/serviceusage.serviceUsageAdmin
    
    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=user:email@domain.com \
      --role=roles/iam.serviceAccountAdmin
    

    Em que email@domain.com é o endereço de e-mail para sua conta de usuário.

  5. Ativar o Assured OSS no projeto. Ativando O Assured OSS também ativa a API Artifact Registry.

    gcloud services enable assuredoss.googleapis.com
    
  6. Para criar uma nova conta de serviço para Assured OSS em vez de usando contas de serviço atuais, faça o seguinte:

    gcloud iam service-accounts create SERVICE_ACCOUNT_NAME \
      --description="Service account for using Assured OSS"
      --display-name="Assured OSS service account"
    

    Substitua SERVICE_ACCOUNT_NAME pelo nome do conta de serviço (por exemplo, assuredoss).

  7. Configure as contas de serviço para o Assured OSS:

    gcloud projects add-iam-policy-binding PROJECT_ID \
      --member=serviceAccount:SERVICE_ACCOUNT_NAME@PROJECT_ID.iam.gserviceaccount.com \
      --role roles/assuredoss.user
    

    Substitua:

    • SERVICE_ACCOUNT_NAME: o nome do conta de serviço (por exemplo, assuredoss).
    • PROJECT_ID: o identificador do projeto.
  8. Configurar o serviço de proxy do Assured OSS em um Artifact Registry ao criar repositórios do Assured OSS. Você deve criar repositórios para todas as linguagens. O Assured OSS serviço de proxy que provisiona os repositórios oferece suporte à região dos EUA .

    alias gcurlj='curl -H "Authorization: Bearer $(gcloud auth print-access-token)" -H "Content-Type: application/json" -X'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-java   -d '{"format": "MAVEN", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-javascript   -d '{"format": "NPM", "mode": "AOSS_REPOSITORY"}'
    
    gcurlj POST https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories\?repositoryId\=assuredoss-python   -d '{"format": "PYTHON", "mode": "AOSS_REPOSITORY"}'
    

    Substitua PROJECT_ID pelo ID do projeto que que você selecionou ao configurar o Assured OSS.

    Esses repositórios podem extrair pacotes automaticamente portfólio. Se um pacote não estiver disponível como parte do portfólio selecionado, os repositórios redirecionam a solicitação para os repositórios canônicos.

  9. Criar uma conta de serviço chave para cada conta de serviço do Assured OSS e baixe a chave no formato JSON.

  10. Na linha de comando, execute o comando a seguir no arquivo de chave transferido por download para string codificada em base64:

    base64 KEY_FILENAME.json
    

    Substitua KEY_FILENAME.json pelo nome do chave da conta de serviço que você transferiu por download.

    Você precisa da string codificada em base64 ao configurar um repositório remoto para Assured OSS.

  11. Para fazer o download dos pacotes, use os endpoints provisionados pelo OSS Assured para cada idioma. Anote estas informações endpoints:

    • Java:
      https://us-maven.pkg.dev/PROJECT_ID/assuredoss-java
    • Python:
      https://us-python.pkg.dev/PROJECT_ID/assuredoss-python
    • JavaScript:
      https://us-npm.pkg.dev/PROJECT_ID/assuredoss-javascript

    Substitua PROJECT_ID pelo ID do projeto que que você selecionou ao configurar o Assured OSS.

  12. Configurar o Assured OSS para fazer o download de pacotes com o gerenciador de repositórios de artefatos da organização como JFrog Artifactory ou Sonatype Nexus.

  13. Opcionalmente, veja os pacotes Java, Python e JavaScript disponíveis:

    gcloud auth revoke
    gcloud auth application-default revoke
    gcloud auth login --cred-file=KEY_FILENAME.json
    

    Substitua KEY_FILENAME.json pelo nome do chave da conta de serviço que você transferiu por download.

    export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
    

    Substitua KEY_FILENAME.json pelo nome do chave da conta de serviço que você transferiu por download.

    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-java/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-python/packages"
    gcurlj GET "https://artifactregistry.googleapis.com/v1/projects/PROJECT_ID/locations/us/repositories/assuredoss-javascript/packages"
    

    Substitua PROJECT_ID pelo ID do projeto que que você selecionou ao configurar o Assured OSS.

A seguir