Integrar com Assured OSS para segurança de código

O nível premium do Assured Open Source Software (Assured OSS) permite melhorar a segurança do código usando os pacotes OSS que o Google usa nos próprios fluxos de trabalho de desenvolvedores. Ao usar o Assured OSS, seus desenvolvedores podem aproveitar o conhecimento e a experiência em segurança que o Google protegendo as próprias dependências de código aberto.

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

  • Escolha entre milhares de pacotes selecionados e mais populares de Java e Python, incluindo projetos comuns de machine learning e inteligência artificial, 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 com procedência assinada e inviolável do Google.
  • Reduza o risco de segurança, já que o Google está verificando, encontrando e corrigindo novas vulnerabilidades em pacotes selecionados.

Antes de começar

Conclua estas tarefas antes de concluir as demais tarefas desta página.

Ativar o nível Enterprise do Security Command Center

Confirme se a Security Command Center Enterprise nível é ativado no nível da organização e que você 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. Make sure that you have the following role or roles on the organization: Security Center Admin, Organization Admin

    Check for the roles

    1. In the Google Cloud console, go to the IAM page.

      Go to IAM
    2. Select the organization.
    3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

    4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

    Grant the roles

    1. In the Google Cloud console, go to the IAM page.

      Acessar o IAM
    2. Selecionar uma organização.
    3. Clique em CONCEDER ACESSO.
    4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

    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 Salvar.

    Configurar permissões no nível do projeto

    1. Make sure that you have the following role or roles on the project: Service Usage Admin, Service Account Admin, Project IAM Admin

      Check for the roles

      1. In the Google Cloud console, go to the IAM page.

        Go to IAM
      2. Select the project.
      3. In the Principal column, find all rows that identify you or a group that you're included in. To learn which groups you're included in, contact your administrator.

      4. For all rows that specify or include you, check the Role colunn to see whether the list of roles includes the required roles.

      Grant the roles

      1. In the Google Cloud console, go to the IAM page.

        Acessar o IAM
      2. Selecionar um projeto.
      3. Clique em CONCEDER ACESSO.
      4. No campo Novos principais, insira seu identificador de usuário. Normalmente, é o endereço de e-mail de uma Conta do Google.

      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 Salvar.

      Configurar a Google Cloud CLI

      In the Google Cloud console, activate Cloud Shell.

      Activate Cloud Shell

      At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.

      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 a visão geral de riscos

      2. Verifique se você está visualizando a organização em que ativou o nível do Security Command Center Enterprise.

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

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

      5. Selecione uma nova conta de serviço ou as contas de serviço atuais para adicionar as permissões do software de código aberto garantido.

      6. Selecione o projeto do Google Cloud em que você quer localizar os 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 uso 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, se ainda não estiver ativada, a API Artifact Registry.
        • Configura o serviço de proxy do Assured OSS em uma 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 do portfólio selecionado. Se um pacote não estiver disponível como parte do portfólio selecionado, os repositórios redirecionarão a solicitação para os repositórios canônicos. O serviço de proxy oferece suporte apenas à região dos EUA.
        • Concede a você e à conta de serviço permissões para acessar metadados e notificações de pacotes 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 da chave da conta de serviço que você fez o download.

        Você vai precisar da string codificada em base64 ao configurar um repositório remoto para o 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 futuro.

        • 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 você selecionou ao configurar o Assured OSS.

      11. Clique em Próxima. Configure o Assured OSS com o gerenciador de repositório de artefatos da sua organização, como o JFrog Artifactory ou o 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. Pesquise o projeto em que você quer localizar os recursos do OSS garantido:

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

        Substitua PROJECT_NAME pelo nome do projeto.

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

        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 da 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 da conta de serviço (por exemplo, assuredoss).
        • PROJECT_ID: o identificador do projeto.
      8. Configure o serviço de proxy do Assured OSS em uma instância do Artifact Registry criando 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 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. Crie uma chave de conta de serviço para cada conta de serviço do Assured OSS e faça o download dela no formato JSON.

      10. Na linha de comando, execute o seguinte comando no arquivo de chave transferido por download para receber a 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ê vai precisar da string codificada em base64 ao configurar um repositório remoto para o Assured OSS.

      11. Para fazer o download dos pacotes, use os endpoints provisionados pelo Assured OSS 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 da chave da conta de serviço que você fez o download.

        export GOOGLE_APPLICATION_CREDENTIALS=KEY_FILENAME.json
        

        Substitua KEY_FILENAME.json pelo nome da chave da conta de serviço que você fez o 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 você selecionou ao configurar o Assured OSS.

      A seguir