Transfira pacotes Java através do acesso direto ao repositório

Depois de integrar o AOSS com o Security Command Center, os pacotes do Assured Open Source Software são alojados num repositório do Artifact Registry criado num projeto que controla.

Esta página explica como pode estabelecer ligação ao repositório do Artifact Registry para o Assured OSS para aceder e transferir diretamente os pacotes Java.

Este documento aplica-se apenas ao nível premium do Assured OSS. Para o nível gratuito, consulte o artigo Transfira pacotes Java através do acesso direto ao repositório para o nível gratuito.

Antes de começar

  1. Integre o Assured OSS com o Security Command Center.

  2. Valide a conetividade ao OSS garantido para as contas de serviço pedidas.

  3. Instale a versão mais recente da CLI do Google Cloud.

  4. Se instalou a CLI Google Cloud anteriormente, certifique-se de que tem a versão mais recente executando o comando:

    gcloud components update
    

Configure a autenticação

O Artifact Registry suporta os seguintes métodos de autenticação:

  • Autenticação com um auxiliar de credenciais
  • Autenticação com uma palavra-passe

As secções seguintes descrevem como configurar estes métodos de autenticação.

Autentique com um auxiliar de credenciais

O Artifact Registry fornece um Maven wagon e um plug-in do Gradle para usar como auxiliares de credenciais. Esta opção oferece a maior flexibilidade.

Para configurar as Credenciais padrão da aplicação, consulte o artigo Configure a autenticação.

Configure os seus ajudantes de credenciais

Se estiver a usar um auxiliar de credenciais para configurar a autenticação, faça as seguintes alterações com base na ferramenta de compilação.

Maven

<project>
  <build>
    <extensions>
      <extension>
        <groupId>com.google.cloud.artifactregistry</groupId>
        <artifactId>artifactregistry-maven-wagon</artifactId>
        <version>2.2.0</version>
      </extension>
    </extensions>
  </build>
</project>

Gradle

plugins {
  id "com.google.cloud.artifactregistry.gradle-plugin" version "2.2.0"
}

Faça a autenticação com a palavra-passe

Autentique com uma palavra-passe quando a sua aplicação Java requer autenticação com um nome de utilizador e uma palavra-passe especificados. Consoante a ferramenta de compilação, altere as definições de acordo com as seguintes instruções:

Maven

Adicione as seguintes definições de autenticação na secção settings do ficheiro ~/.m2/settings.xml. Consulte a referência Definições do Maven para mais informações. Se o ficheiro ~/.m2/settings.xml não existir, crie um novo ficheiro.

<settings>
  <servers>
    <server>
      <id>artifact-registry</id>
      <configuration>
        <httpConfiguration>
          <get>
            <usePreemptive>true</usePreemptive>
          </get>
          <head>
            <usePreemptive>true</usePreemptive>
          </head>
          <put>
            <params>
              <property>
                <name>http.protocol.expect-continue</name>
                <value>false</value>
              </property>
            </params>
          </put>
        </httpConfiguration>
      </configuration>
      <username>_json_key_base64</username>
      <password>KEY</password>
    </server>
  </servers>
</settings>

Substitua KEY pela codificação base64 de todo o ficheiro de chave JSON da conta de serviço. Para o fazer, execute o seguinte comando:

cat KEY_FILE_LOCATION  | base64

Substitua KEY_FILE_LOCATION pela localização do ficheiro de chave JSON da conta de serviço.

Gradle

Adicione a seguinte linha ao ficheiro ~/.gradle/gradle.properties para que a chave não fique visível nas suas compilações nem no repositório de controlo de origem.

artifactRegistryMavenSecret = KEY

Substitua KEY pela chave privada do ficheiro de chave JSON da sua conta de serviço. Para json_key_base64, o artifactRegistryMavenSecret contém a palavra-passe encriptada em base64. Por exemplo, base64 -w 0 KEY.

No ficheiro build.gradle, especifique as definições do repositório através do seguinte exemplo:

repositories {
  maven {
    url "artifactregistry://us-maven.pkg.dev/PROJECT_ID/assuredoss-java"
    credentials {
      username = "_json_key_base64"
      password = "$artifactRegistryMavenSecret"
    }
    authentication {
      basic(BasicAuthentication)
    }
  }
}

Substitua PROJECT_ID pelo ID do projeto que selecionou quando configurou o software de código aberto garantido.

Atualize o ficheiro de configuração do projeto para apontar para o repositório

Maven

Adicione as seguintes definições à secção adequada no ficheiro pom.xml do seu projeto Maven. Não substitua as definições de autenticação.

<project>
  <repositories>
    <repository>
      <id>artifact-registry</id>
      <url>artifactregistry://us-maven.pkg.dev/PROJECT_ID/assuredoss-java</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>
  </repositories>
</project>

Substitua PROJECT_ID pelo ID do projeto que selecionou quando configurou o software de código aberto garantido.

Consulte a referência POM do Maven para ver detalhes sobre a estrutura do ficheiro.

Gradle

Especifique as seguintes definições do repositório no ficheiro build.gradle. Não substitua as definições de autenticação.

repositories {
  maven {
  url "artifactregistry://us-maven.pkg.dev/PROJECT_ID/assuredoss-java"
  }
}

Substitua PROJECT_ID pelo ID do projeto que selecionou quando configurou o software de código aberto garantido.

Atualize o ficheiro de configuração do projeto para adicionar dependências

Para transferir um artefacto como parte da sua compilação, o artefacto tem de ser declarado como uma dependência.

Maven

Declare os pacotes que quer transferir no ficheiro pom.xml para o seu projeto Maven.

<dependency>
    <groupId>org.apache.logging.log4j</groupId>
    <artifactId>log4j-api</artifactId>
    <version>2.17.1</version>
</dependency>

Gradle

Declare os pacotes que quer transferir no ficheiro build.gradle.

dependencies {
    compile group: 'org.apache.logging.log4j', name: 'log4j-api', version: '2.17.1'
}

Liste todos os pacotes Java disponíveis no Assured OSS

Para usar uma API para obter uma lista de todos os pacotes Java disponíveis no repositório do Artifact Registry, consulte Liste todos os pacotes Java disponíveis no Security Command Center.

O que se segue?