Neste documento, descrevemos como criar e gerenciar políticas de proteção de artefatos. Para uma visão geral do serviço, dos recursos e dos benefícios, consulte a Visão geral do Artifact Guard.
Antes de começar
Antes de criar uma política de proteção de artefato, é necessário ativar a proteção de artefato no Security Command Center e receber os papéis e permissões necessários do Identity and Access Management (IAM).
Em seguida, crie uma política no console doGoogle Cloud ou usando a Google Cloud CLI.
Ativar o Artifact Guard
Siga as etapas em Configurar os serviços do Security Command Center para ativar o artifact guard.
Papel necessário
Para receber as permissões necessárias para usar o Artifact Guard, peça ao administrador para conceder a você o seguinte papel do Identity and Access Management (IAM) no projeto ou na organização:
- Administrador de avaliação do Artifact Scan Guard (
roles/artifactscanguard.policyEvaluator)
Essa função pode ser concedida usando o console Google Cloud ou executando o seguinte comando da Google Cloud CLI:
projeto
gcloud organizations add-iam-policy-binding PROJECT_ID \
--member="serviceAccount:YOUR_SERVICE_ACCOUNT_EMAIL" \
--role="roles/artifactscanguard.policyEvaluator" \
Substitua:
PROJECT_IDYOUR_SERVICE_ACCOUNT_EMAIL
organização
gcloud organizations add-iam-policy-binding ORGANIZATION_ID \
--member="serviceAccount:YOUR_SERVICE_ACCOUNT_EMAIL" \
--role="roles/artifactscanguard.policyEvaluator" \
Substitua:
ORGANIZATION_IDYOUR_SERVICE_ACCOUNT_EMAIL
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Para mais papéis do Artifact Guard, consulte Papéis e permissões do Artifact Guard.
Criar uma política no console do Google Cloud
Para criar uma política de proteção de artefatos no console do Google Cloud , siga estas etapas:
No console Google Cloud , acesse Segurança > Regras e clique em Criar política de proteção de artefato ou Criar política.
Insira um ID da política e uma Descrição para a política e clique em Continuar.
Selecione escopos e ações da política:
Plataforma de CI/CD
- Selecionar conectores: os conectores a serem associados a esta política. Para cada build de CI/CD associado aos conectores selecionados, essa política será avaliada.
- Ação da política: selecione a ação a ser realizada quando a política for violada.
- Bloquear builds que causam falhas na política
- Aprovar builds com alertas: os resultados da avaliação da política do scanner de CI/CD são mostrados nos pipelines de build conectados.
Registro
- Projetos do Container Analysis: isso se aplica apenas a organizações, não a projetos. Adicione os projetos Google Cloud em que você quer aplicar essa política.
- Repositórios do Artifact Registry: selecione os repositórios em que você quer aplicar essa política. Eles precisam ser repositórios válidos do Artifact Registry. Se deixado em branco, a política será aplicada a todos os repositórios.
- Ação da política: selecione a ação a ser realizada quando a política for violada.
- Somente auditoria: a política é avaliada, e todas as violações são registradas para fins de auditoria sem bloquear o recurso. Para conferir violações, chame a API usando
ListArtifactPoliciesEvaluationseGetArtifactPoliciesEvaluation. - Controle de admissão: se uma violação ocorrer enquanto a política estiver
sendo avaliada, o recurso será bloqueado.
- Definir políticas de autorização binária para o modo de teste: consulte Ativar o modo de teste para mais informações.
- Projetos de autorização binária: isso se aplica apenas a organizações, não a projetos. Adicione os projetos Google Cloud em que você quer aplicar o controle de admissão.
- Clusters do GKE: se deixado em branco, o controle de admissão será aplicado a todos os clusters do GKE.
- Substituir políticas de autorização binária: essa caixa de seleção precisa ser marcada para atualizar a política de autorização binária para controle de admissão.
- Somente auditoria: a política é avaliada, e todas as violações são registradas para fins de auditoria sem bloquear o recurso. Para conferir violações, chame a API usando
Ambiente de execução
- Projetos de ambiente de execução: isso só é aplicável a organizações, não a projetos. Adicione projetos de ambiente de execução que contenham clusters do GKE.
- Clusters do GKE: selecione os clusters do GKE em que você quer aplicar essa política. Se ficar em branco, a política será aplicada a todos os clusters do GKE nos projetos selecionados.
Defina a regra da política. Uma regra de política é um conjunto de critérios que determina quais vulnerabilidades e pacotes são permitidos no seu ambiente. Uma regra de política inclui o seguinte:
Limite de gravidade: defina o nível mínimo de gravidade para que uma vulnerabilidade seja incluída na avaliação da política. As vulnerabilidades precisam atender ou exceder esse limite para serem incluídas.
Por exemplo, configurar a regra como Média inclui todas as vulnerabilidades Média, Alta e Crítica na avaliação.
Limite de contagem de vulnerabilidades: define o número máximo de vulnerabilidades permitidas após a aplicação de outros filtros de política. A política é violada somente se a contagem dessas vulnerabilidades específicas e filtradas exceder o limite.
Por exemplo, se você definir um limite de gravidade Alta, excluir vulnerabilidades com correções indisponíveis e definir um limite de contagem de cinco, um build vai falhar se contiver mais de cinco vulnerabilidades corrigíveis classificadas como Alta ou Crítica.
Status da vulnerabilidade: especifique se você quer incluir apenas vulnerabilidades para as quais uma correção está disponível. Isso permite a correção priorizada ao direcionar todas as vulnerabilidades ou apenas as que podem ser corrigidas.
Exceções e restrições: nessas seções, é possível criar permissões ou bloqueios específicos que substituem a política geral.
- CVEs isentos: especifique CVEs considerados aceitáveis no seu ambiente por um período determinado. Isso é útil para implementar soluções alternativas temporárias. É possível definir uma data de validade para essas exceções. Depois dessa data, a vulnerabilidade não será mais permitida e vai causar falha na política.
- CVEs restritos: especifique CVEs para sempre bloquear, independente da classificação de gravidade. Isso é especialmente útil para indicar vulnerabilidades que apresentam um risco exclusivo para seu aplicativo ou infraestrutura específica.
- Pacotes permitidos: lista os pacotes considerados seguros. A versão do pacote pode ser definida. Caso contrário, todas as versões são permitidas.
- Pacotes restritos: liste os pacotes que serão restritos. Pacotes restritos causam falha na política. A versão do pacote pode ser definida. Caso contrário, todas as versões serão restritas.
Clique em Criar.
As políticas de proteção de artefatos disponíveis estão listadas na tabela da página Regras.
Criar uma política usando a Google Cloud CLI
Esta seção descreve os comandos da CLI gcloud disponíveis para o artifact guard e como usá-los.
Pré-requisitos da Google Cloud CLI
- Verifique se a versão da CLI gcloud é 559.0.0 ou mais recente.
- Defina seu projeto como o projeto de configuração.
Para fazer isso, execute os seguintes comandos da CLI gcloud:
gcloud components update --version=559.0.0
gcloud config set project PROJECT_ID
Comandos da Google Cloud CLI
create
gcloud alpha scc artifact-guard policies create \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \ --policy-file-path=PATH_TO_FILE
- POLICY: o identificador completo da política, em um dos seguintes formatos:
{organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_ID}{projects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_ID}{policy_id -location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)}
- PATH_TO_FILE: o caminho local para o documento YAML que contém a definição da política. Consulte a seção de arquivos YAML deste documento para mais detalhes sobre a estrutura do arquivo YAML.
get
gcloud alpha scc artifact-guard policies describe \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER))
- POLICY: o identificador completo da política, em um dos seguintes formatos:
{organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_ID}{projects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_ID}{policy_id -location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)}
list
gcloud alpha scc artifact-guard policies list PARENT
- PARENT: uma organização ou um projeto. Formatos aceitos para o recurso pai:
{organizations/ORGANIZATION_ID/locations/LOCATION}{projects/PROJECT_NUMBER/locations/LOCATION}
excluir
gcloud alpha scc artifact-guard policies delete \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \ [--etag=ETAG]
- POLICY: o identificador completo da política em um
dos seguintes formatos:
{organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_ID}{projects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_ID}{policy_id -location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)}
- etag: opcional. Para controle de simultaneidade. A solicitação só será processada se o ETag do recurso corresponder.
update
gcloud alpha scc artifact-guard policies update \ (POLICY --location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)) \ --policy-file-path=PATH_TO_FILE [--allow-missing] \ [--update-mask=UPDATE_MASK]
- POLICY: o identificador completo da política, em um dos seguintes formatos:
{organizations/ORGANIZATION_ID/locations/LOCATION/policies/POLICY_ID}{projects/PROJECT_NUMBER/locations/LOCATION/policies/POLICY_ID}{policy_id -location=LOCATION (--organization=ORGANIZATION_ID | --project=PROJECT_NUMBER)}
- PATH_TO_FILE: o caminho local para o documento YAML que contém a definição dos campos a serem atualizados.
- allow_missing: booleano opcional. Se
true, cria uma política se a especificada não existir. - update-mask: lista separada por vírgulas de campos a serem
atualizados. Uma string vazia ou "*" significa uma atualização completa da política. Os campos válidos para a máscara de atualização incluem:
display_namedescriptionscopeenablement_statevulnerability_policyannotations
Arquivo YAML
Um arquivo YAML para uma definição de política de proteção de artefato precisa seguir este modelo:
displayName: <Human readable display name for the policy>
description: <Description of the policy>
vulnerabilityPolicy: # (at least one of these rules must be defined)
exemptedCves:
- id: <cve-id-1>
gracePeriodExpirationTime: <optional-grace-period-expiration-time>
- id: <cve-id-2>
gracePeriodExpirationTime: <optional-grace-period-expiration-time>
maxAllowedSeverity: <The maximum severity allowed in the detected
vulnerabilities. The severity values can be LOW, MEDIUM, HIGH, CRITICAL>
maximumAllowedVulnerabilities: <The maximum number of vulnerabilities that
can be detected>
excludeUnfixable: <Whether to exclude the vulnerabilities without an
available fix from the purview of the policy evaluation>
restrictedCves:
- <restricted-cve-id-1>
- <restricted-cve-id-2>
allowedPackages:
- name: <allowed_package_name_1>
version: <optional_version_of_allowed_package_1. If unspecified, all the
versions of the package are allowed>
- name: <allowed_package_name_2>
version: <optional_version_of_allowed_package_2>
restrictedPackages:
- name: <restricted_package_name_1>
version: <optional_version_of_restricted_package_1. If unspecified, all
the versions of the package are restricted>
- name: <restricted_package_name_2>
version: <optional_version_of_restricted_package_2>
scope:
pipeline:
connectorIds:
- <connector_id_1>
- <connector_id_2>
enforcementAction: <action to take in case the policy evaluation fails.
The supported values are AUDIT_ONLY or BLOCK_BUILD>
registry:
projectIds:
- <project_id_1>
garRepositoryNamePatterns:
- <repository_name_pattern_1>
imageNamePatterns:
- <image_name_pattern_1>
enforcementAction: <AUDIT_ONLY or ADMISSION_CONTROL>
admissionControl:
deploymentProjectIds:
- <project_id_1>
gkeClusterNames:
- <cluster_name_1>
dryRun: <bool>
overrideBinauthzPolicy: <bool>
runtime:
deploymentProjectIds:
- <project_id_1>
gkeClusterNames:
- <cluster_name_1>
dryRun: <bool>
overrideBinauthzPolicy: <bool>
enforcementAction: <AUDIT_ONLY or BLOCK_DEPLOYMENT>
enablementState: <The enablement state of the policy. The supported values are
ACTIVE, INACTIVE>
Confira abaixo um exemplo de arquivo de política de proteção de artefatos:
displayName: 'A sample policy'
description: Vulnerability Policy
vulnerabilityPolicy:
exemptedCves:
- id: CVE-2022-40897
gracePeriodExpirationTime: '2026-09-10T18:58:08Z'
- id: CVE-2024-6345
maxAllowedSeverity: MEDIUM
maximumAllowedVulnerabilities: 5
excludeUnfixable: true
restrictedCves:
- CVE-2013-4392
- CVE-2024-4143
allowedPackages:
- name: systemd
version: '257.7'
- name: util-linux
restrictedPackages:
- name: ncurses
version: 6.5+20250216
- name: setuptools
scope:
pipeline:
connectorIds:
- organizations/123/locations/global/connectors/demoConnector
enforcementAction: BLOCK_BUILD
registry:
projectIds:
- projects/my-registry-project-id
- projects/another-registry-project
garRepositoryNamePatterns:
- us-west1-docker.pkg.dev/my-registry-project-id/my-repo
- gcr.io/team-a/internal-artifacts
imageNamePatterns:
- my-repo/service-a:.*
- my-repo/service-b:v1\..*
enforcementAction: ADMISSION_CONTROL
admissionControl:
deploymentProjectIds:
- projects/my-deployment-project
gkeClusterNames:
- //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-a
- //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-b
dryRun: true
overrideBinauthzPolicy: true
runtime:
deploymentProjectIds:
- projects/my-deployment-project
gkeClusterNames:
- //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-a
- //container.googleapis.com/projects/my-deployment-project/locations/us-central1/clusters/gke-cluster-b
dryRun: false
overrideBinauthzPolicy: false
enforcementAction: BLOCK_DEPLOYMENT
enablementState: ACTIVE
Desempenho e limitações
- Número máximo de políticas por recurso pai: um recurso pai (organização ou projeto) pode definir no máximo 1.000 políticas. Isso inclui todos os tipos de políticas de segurança configuradas na proteção de artefatos.
- Número máximo de políticas de vulnerabilidade por recurso principal: dentro do limite geral da política, há um limite no número de políticas focadas em descobertas de vulnerabilidade. Um recurso pai (organização ou projeto) pode ter no máximo 500 políticas que visam vulnerabilidades.
- Número máximo de políticas por pipeline: para cada pipeline de CI/CD individual em que as políticas de proteção de artefatos são integradas para aplicação no tempo de build, é permitido um máximo de 100 políticas.
- Máximo de atualizações por política por semana: para cada política, é possível fazer no máximo 100 atualizações por semana.
- Máximo de conectores de pipeline por política: cada política pode ter no máximo 100 conectores de pipeline associados a ela.
- Número máximo de CVEs isentas e restritas por política: cada política pode isentar e restringir no máximo 100 CVEs.
- Número máximo de pacotes permitidos e restritos por política: cada política pode permitir e restringir no máximo 100 pacotes.
Para mais restrições, consulte Solução de problemas.
Solução de problemas
Esta seção descreve os campos da política de proteção de artefatos e erros comuns com as respectivas resoluções.
Validação da política
O Artifact Guard valida as definições de política quando você cria ou atualiza políticas. Se a validação falhar, o Artifact Guard vai rejeitar a solicitação e fornecer uma mensagem de erro detalhada.
Campos gerais da política
| Nome | Descrição | Obrigatório | Restrições | Exemplo de valores |
|---|---|---|---|---|
| Pai | Define o escopo de aplicação da política. | Sim | Somente políticas no local global são compatíveis. |
|
| ID da política | Um identificador exclusivo da política. | Sim | com até 100 caracteres. Precisa começar com uma letra, terminar com um caractere alfanumérico e conter apenas letras, números, hifens ou sublinhados. | my-policy-1 |
| Nome de exibição | Um nome legível para a política. | Não | com até 63 caracteres. Recomendado para ser exclusivo. | My vulnerability policy |
| Descrição | Uma descrição da política. | Não | Até 2.048 caracteres. | Checks for critical vulnerabilities. |
| Tipo de política | O tipo de política que está sendo definida. | Sim | Somente vulnerability_policy é aceito. |
vulnerability_policy |
| Estado de ativação | O estado de ativação da política. | Sim | Precisa ser ACTIVE ou INACTIVE. |
ACTIVE |
Política de vulnerabilidades
| Nome | Descrição | Vários valores | Restrições | Exemplo de valores |
|---|---|---|---|---|
| maximumAllowedVulnerabilities | Número máximo de vulnerabilidades permitidas antes que a política seja violada. | Não | Precisa ser um número não negativo, se definido. | 10 |
| maxAllowedSeverity | Gravidade máxima das vulnerabilidades permitidas pela política. | Não | Precisa ser LOW, MEDIUM, HIGH ou CRITICAL. |
|
| exemptedCves | Lista de CVEs isentas desta política. | Sim | Até 100 entradas. Cada ID precisa estar no formato CVE-YYYY-NNNN.
Se fornecida, a expiração do período de carência precisa ser um carimbo de data/hora válido. Não pode se sobrepor a restrictedCves. |
- id: CVE-2024-12345gracePeriodExpirationTime: 2027-01-01T00:00:00Z- id: CVE-2025-4000 |
| restrictedCves | Lista de CVEs explicitamente proibidos por esta política. | Sim | Até 100 entradas. Cada ID precisa estar no formato CVE-YYYY-NNNN.
Não pode se sobrepor a exemptedCves. |
- CVE-2024-54321- CVE-2025-5001 |
| allowedPackages | Lista de pacotes permitidos, que podem substituir outras regras. | Sim | Até 100 entradas. Os nomes de pacotes não podem ficar em branco. Não pode entrar em conflito com
restrictedPackages. |
- name: nginxversion: 1.0- name: pythonversion: 3.12.4 |
| restrictedPackages | Lista de pacotes explicitamente proibidos. | Sim | Até 100 entradas. Os nomes de pacotes não podem ficar em branco. Não pode entrar em conflito com
allowedPackages. |
- name: npmversion: 9.0.0 |
| excludeUnfixable | Se as vulnerabilidades sem correção disponível devem ser excluídas. | Não | Booleano. O padrão é false. |
true |
| exemptionDaysPostDisclosure | Número de dias para isentar vulnerabilidades após a data de divulgação. | Não | Precisa ser um número não negativo, se definido. O padrão é 0. |
30 |
Escopo da política
Escopo do pipeline
| Nome | Descrição | Obrigatório | Restrições | Exemplo de valores |
|---|---|---|---|---|
| connectorIds | Lista de IDs de conector a que a política se aplica durante a verificação do pipeline de CI/CD. | Sim | Mínimo de 1 entrada, máximo de 100 entradas. Sua organização ou projeto precisa estar integrado à verificação de CI/CD. Cada ID precisa seguir o formato correto, pertencer à sua organização ou projeto e apontar para um conector existente. |
|
| enforcementAction | Ação a ser tomada quando a política for violada. | Sim | Precisa ser AUDIT_ONLY ou BLOCK_BUILD. |
BLOCK_BUILD |
Escopo do registro
| Nome | Descrição | Obrigatório | Restrições | Exemplo de valores |
|---|---|---|---|---|
| projectIds | Lista de IDs de projetos em que a política é aplicada. | Não | Mínimo de uma entrada. Cada ID precisa ser um ID de projeto Google Cloud válido. | projects/123, projects/456 |
| garRepositoryNamePatterns | Lista de padrões de nome do repositório do Artifact Registry Google Cloud . | Não | Máximo de 100 entradas. Precisa ser um padrão do repositório do Artifact Registry Google Cloud válido. | us-west1-docker.pkg.dev/my-project/my-repo, gcr.io/team-a/* |
| imageNamePatterns | Padrões de expressão regular para nomes de imagens totalmente qualificados. | Não | Máximo de 100 entradas. Precisa ser uma expressão regular válida. | 'my-repo/service-a:.*', 'my-repo/service-b:v1..*' |
| enforcementAction | A ação a ser tomada quando a política for violada. | Sim | Precisa ser AUDIT_ONLY ou ADMISSION_CONTROL. |
ADMISSION_CONTROL |
| admissionControl | Detalhes da configuração para o controle de admissão. | Não | Precisa estar presente se enforcementAction for ADMISSION_CONTROL. |
Escopo de tempo de execução
O escopo de execução permite que o Artifact Guard monitore ativamente as imagens de contêiner em execução no seu ambiente do GKE. Quando uma política é aplicada a esse escopo, as descobertas de vulnerabilidade do Security Command Center são automaticamente aprimoradas com metadados de política para imagens implantadas nos projetos ou clusters especificados.
| Nome | Descrição | Obrigatório | Restrições | Exemplo de valores |
|---|---|---|---|---|
| projectIds | Lista de IDs de projetos em que os clusters do GKE são implantados e a avaliação de vulnerabilidades está ativada. | Sim | Precisa ser selecionada no nível da organização. | projects/my-gke-deployment-123 |
| gkeClusterNames | Clusters específicos do GKE para os quais a política precisa ser avaliada. | Não | Podem ser selecionados no nível da organização ou do projeto. | projects/prod-env/locations/us-central1/clusters/main-cluster |
Se uma imagem de contêiner em execução em um cluster do GKE monitorado violar uma política, os metadados ArtifactGuardPolicies serão adicionados à mensagem de descoberta de vulnerabilidade do Security Command Center da seguinte maneira:
// Added to the SCC 'message Finding'
ArtifactGuardPolicies artifact_guard_policies = X;
message ArtifactGuardPolicies {
string resource_id = 1; // e.g., //us-docker.pkg.dev/google-samples/containers/gke/security/...
repeated Policy failing_policies = 2;
}
message Policy {
enum Type {
TYPE_UNSPECIFIED = 0;
VULNERABILITY = 1;
}
Type type = 1;
string policy_id = 2; // e.g., organizations/3392779/locations/global/policies/prod-policy
string failure_reason = 3; // e.g., severity=HIGH AND max_vuln_count=2
}
Ação de restrição
Para ações BLOCK_BUILD e BLOCK_DEPLOYMENT, a avaliação da política retorna uma ação de aplicação recomendada. No entanto, você precisa configurar a aplicação real na configuração do pipeline usando essa recomendação.
Exclusão de política
Não é possível excluir políticas ativas, o que resulta em um erro FAILED_PRECONDITION. Para excluir uma política, primeiro defina o estado dela como Inactive.
Erros comuns
A tabela a seguir descreve alguns erros comuns e como resolvê-los.
| Dica de mensagem de erro | Causa | Resolução |
|---|---|---|
| O campo "parent" é obrigatório | O campo "parent" não está na solicitação. | Forneça um elemento pai válido em um dos seguintes formatos:
|
| definição de política é obrigatória | O objeto de política está ausente da solicitação. | Forneça um objeto de política válido na solicitação. |
| O nome de exibição pode ter no máximo... | O nome de exibição excede 63 caracteres. | Reduza o nome de exibição para 63 caracteres ou menos. |
| A descrição tem um tamanho máximo de... | A descrição excede 2.048 caracteres. | Reduza a descrição para 2.048 caracteres ou menos. |
| O tipo de política é obrigatório | O tipo de política (por exemplo, vulnerabilityPolicy) está faltando na solicitação. |
Adicione uma política de vulnerabilityPolicy ou outro tipo à sua política. |
| O estado de ativação é inválido | Um estado de ativação inválido ou descontinuado foi usado. | Use ACTIVE ou INACTIVE. |
| O escopo é obrigatório | Nenhum escopo (pipeline, registro ou ambiente de execução) foi definido. | Adicione pelo menos um escopo válido à sua política. |
| O nome do CVE precisa estar no formato... | Um ID de CVE em exemptedCves ou restrictedCves é inválido. |
Verifique se todos os IDs de CVE seguem o formato CVE-YYYY-NNNN. |
| O CVE ... não pode ser dispensado e restrito | O mesmo ID de CVE existe em exemptedCves e restrictedCves. |
Remova a CVE de uma das listas. |
| O nome do pacote não pode ficar em branco | Um pacote em allowedPackages ou restrictedPackages
tem um nome vazio. |
Dê um nome a todos os pacotes. |
| package ... cannot be allowed and restricted | O mesmo pacote está listado em allowedPackages e restrictedPackages. |
Remova o pacote de uma das listas. |
| IDs de conector são obrigatórios | O campo connectorIds está ausente em um escopo de pipeline. |
Informe pelo menos um ID de conector. |
| O ID do conector precisa estar no formato... | Um ID do conector está incorreto. | Verifique se os IDs estão em um dos seguintes formatos:
|
| O ID do conector ... não existe | Um ID de conector especificado não existe. | Verifique se o conector existe ou remova-o da lista. |
| O padrão do nome do repositório do GAR precisa ser... | Um padrão de repositório inválido foi fornecido em um escopo do registro. | Verifique se os padrões correspondem a formatos válidos de repositório do Artifact Registry Google Cloud . |
| O ID do projeto precisa ser um ID do projeto do GCP válido... | Um ID do projeto inválido foi fornecido em um escopo de registro ou de tempo de execução. | Forneça IDs de projeto Google Cloud válidos. |
| uma ação de restrição precisa ser especificada | O enforcementAction está ausente em um escopo de pipeline ou de ambiente de execução. |
Defina a ação de aplicação (por exemplo, AUDIT_ONLY,
BLOCK_BUILD (somente pipeline) ou BLOCK_DEPLOYMENT (somente ambiente de execução)). |
| o número de políticas por organização excede o limite... | Você atingiu o número máximo de políticas (1.000) para sua organização. | Exclua as políticas não utilizadas antes de criar novas. |
| O número de políticas de vulnerabilidade excede o limite... | Você atingiu o número máximo de políticas de vulnerabilidade (500). | Exclua as políticas de vulnerabilidade não usadas antes de criar novas. |
| O número de políticas por pipeline excede o limite... | Um conector está associado a mais de 100 políticas. | Reduza o número de políticas associadas ao conector. |
| o número de revisões da política excede o limite... | Você atualizou uma política mais de 100 vezes em 7 dias. | Aguarde ou reduza a frequência de atualização. |
Problemas operacionais comuns
Além das falhas de validação de conteúdo da política, podem surgir problemas com o plano de controleGoogle Cloud . Esses problemas podem afetar solicitações de API, operações de longa duração e estados de recursos, geralmente aparecendo como códigos de erro específicos ou comportamento incomum.
| Problema | Sintoma(s) | Como resolver |
|---|---|---|
| Modificação simultânea | UpdatePolicy ou DeletePolicy falha com um
código de erro ABORTED e uma mensagem "Provided etag is out of date". |
Solução de problemas: isso acontece quando o etag
na sua solicitação não corresponde à versão atual do servidor da política,
indicando uma modificação por outra solicitação.Resolução: leia a política novamente para receber a etag mais recente e tente fazer a solicitação de novo com a nova etag. |
| Solicitação validada, mas não executada | Uma solicitação CreatePolicy, UpdatePolicy ou DeletePolicy
é retornada com sucesso, mas você não observa nenhuma mudança no recurso. |
Solução de problemas: isso geralmente acontece quando validate_only: true
é definido na solicitação. Essa flag instrui o serviço a realizar todas as
validações sem confirmar nenhuma mudança.Resolução: defina validate_only como
false ou omita o campo na sua solicitação. |
| A atualização cria uma nova política | Uma solicitação UpdatePolicy cria uma política em vez de
retornar um erro "não encontrado" quando a política não existe. |
Solução de problemas: esse é o comportamento esperado quando
allow_missing: true é incluído em um UpdatePolicyRequest.Resolução: se você quiser atualizar uma política existente, defina allow_missing como false ou omita o
campo. |
| Permissão negada ou API não ativada | As solicitações falham com PERMISSION_DENIED ou uma mensagem de erro
como "Artifact Guard API has not been used in the project before or it is
disabled." |
Solução de problemas: a API pode estar desativada ou o
chamador pode não ter permissões suficientes. Resolução: no projeto Google Cloud , ative a API Artifact Guard ( artifactscanguard.googleapis.com).
Confirme se o usuário ou a conta de serviço que está realizando a operação tem os
papéis necessários do IAM. |
| Tempo limite da operação | Uma solicitação que retorna uma operação de longa duração (LRO) leva muito tempo
para ser concluída ou falha com DEADLINE_EXCEEDED. |
Solução de problemas: isso pode indicar uma lentidão ou um problema temporário no serviço de back-end. Resolução: consulte o status da LRO. Se ela falhar ou atingir o tempo limite, tente novamente após alguns instantes. Se o problema persistir, confira o Painel de status doGoogle Cloud para ver se há incidentes em andamento ou entre em contato com o suporte do Google Cloud . |