Falha na criação ou atualização do gateway ou implantação por causa de políticas do IAM ausentes ou recursos relacionados inacessíveis

Descubra como diagnosticar e solucionar problemas de falhas de criação e atualização do gateway causadas por políticas do IAM ausentes ou recursos relacionados inacessíveis ao usar o serviço API Gateway.

Uma solicitação para criar ou atualizar um gateway ou implantação pode falhar mesmo quando o corpo da solicitação é válido. A falha pode ocorrer porque o chamador, o gateway ou um recurso referenciado não satisfaz os pré-requisitos da tenancy, do compartimento, da tag ou do recurso relacionado.

Antes de Solucionar Problemas

Revise os seguintes tópicos antes de atualizar políticas ou recursos relacionados:

Sintomas do Problema

Você pode ver um ou mais dos seguintes sintomas:

  • A criação ou atualização do gateway falha mesmo que o corpo da solicitação seja válido.

  • A criação ou atualização da implantação falha mesmo que o gateway de destino exista.

  • A resposta inclui NotAuthorizedOrNotFound.

  • A resposta inclui RelatedResourceNotAuthorizedOrNotFound.

  • O chamador tem algumas permissões do Gateway de API, mas a operação ainda falha.

  • A solicitação usa condições do IAM baseadas em tag e a autorização ainda falha.

Possíveis Causas

As operações de criação e atualização podem exigir mais do que a política que permite acesso aos recursos do Gateway de API. O chamador também deve ter acesso a cada recurso relacionado que a solicitação usa.

As causas comuns incluem os seguintes problemas:

  • O chamador não tem manage api-gateway-family no compartimento que contém o gateway ou a implantação.

  • O chamador não tem manage virtual-network-family no compartimento que contém a sub-rede ou recursos de rede relacionados.

  • A implantação usa um recurso, como funções, certificados, autoridades de certificação ou segredos do vault, mas a política específica do recurso necessária está ausente.

  • A solicitação faz referência a um recurso em um compartimento que está fora do escopo da política.

  • Uma condição do IAM baseada em tag não corresponde ao recurso de destino ou ao recurso relacionado.

  • A solicitação usa um OCID (Oracle Cloud Identifier) incorreto para o gateway, a sub-rede, o certificado, o segredo ou outro recurso relacionado.

Revisar Políticas Necessárias

Comece confirmando que o chamador tem as políticas principais que se aplicam ao cenário de implantação de back-end HTTP mais comum.

Para gateways e implantações que usam serviços de back-end HTTP, o chamador geralmente precisa das seguintes políticas:

Allow group <group-name> to manage api-gateway-family in compartment <apigw-compartment>
Allow group <group-name> to manage virtual-network-family in compartment <network-compartment>

Estas políticas abrangem apenas o caso comum. Se o gateway ou a implantação usar recursos adicionais, adicione a política que corresponde a cada recurso.

Use as seguintes políticas específicas de recursos como ponto de partida:

  • Para uma implantação que use o OCI Functions como um serviço de back-end, conceda acesso aos recursos de funções:

    Allow group <group-name> to use functions-family in compartment <functions-compartment>
  • Para um domínio personalizado que usa um certificado do serviço Certificates, conceda acesso a associações de certificados:

    Allow group <group-name> to manage certificate-associations in compartment <apigw-compartment>
  • Para autoridades de certificação personalizadas (CAs) ou bundles de CA em um armazenamento confiável de gateway, conceda acesso a recursos de autoridade de certificação:

    Allow group <group-name> to manage certificate-authority-family in compartment <apigw-compartment>
  • Para credenciais do cache de resposta ou credenciais do provedor de autenticação armazenadas em vaults no serviço Vault, crie um grupo dinâmico para o gateway e conceda ao gateway acesso para ler o pacote de segredos:

    allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment>
  • Para acessar um segredo específico, use uma política que limite o acesso a esse OCID de segredo:

    allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment> where target.secret.id='<secret_ocid>'

Revisar a Resposta de Erro

Use a resposta com falha para identificar qual operação falhou e qual erro de autorização foi retornado.

Registre os seguintes campos de resposta:

  • operation_name

  • status

  • code

  • opc-request-id

Para esse problema, uma resposta com falha típica inclui os seguintes valores:

  • operation_name: create_deployment

  • status: 404

  • code: NotAuthorizedOrNotFound

Mantenha o valor opc-request-id para que você possa correlacionar a solicitação com falha com dados de diagnóstico e suporte.

Revisar Escopo da Política do Serviço IAM

Faça a correspondência da operação com falha com o escopo da política que a operação exige.

Para operações de criação ou atualização de gateway, verifique os seguintes requisitos:

  • O chamador pode gerenciar recursos do Gateway de API no compartimento que contém o gateway.

  • O chamador pode gerenciar recursos de rede no compartimento que contém a sub-rede e os recursos de rede relacionados.

Para operações de criação ou atualização de implantação, verifique os seguintes requisitos:

  • O chamador pode gerenciar recursos do Gateway de API no compartimento que contém a implantação.

  • O chamador tem cada política específica de recurso exigida pela configuração de implantação.

Se a solicitação usar um domínio personalizado, um bundle de CAs, um segredo do vault ou um back-end do serviço Functions, verifique a política específica do recurso correspondente.

Revisar Compartimentos e Recursos Relacionados

Uma solicitação pode falhar mesmo quando a política principal do Gateway de API existir. A falha pode ocorrer quando um recurso relacionado está ausente, inacessível ou fora do escopo da política.

Verifique se o chamador pode acessar os seguintes recursos, conforme aplicável:

  • O gateway de destino.

  • O compartimento de implantação de destino.

  • A sub-rede referenciada pelo gateway.

  • Qualquer recurso de certificado.

  • Qualquer bundle de CAs ou recurso de CAs.

  • Qualquer serviço de back-end do Functions.

  • Qualquer segredo do vault exigido pelo gateway ou fluxo de implantação.

Verifique se cada recurso está em um compartimento que a política relevante abrange.

Revisar Condições da Política Baseada em Tag

Se a tenancy usar condições do IAM com base em tags, confirme se a condição de tag corresponde ao chamador e a cada recurso de destino.

Os pontos de falha típicos relacionados a tags incluem os seguintes problemas:

  • A tag do grupo de controladores de solicitações não corresponde à tag do recurso de destino.

  • O valor da tag de recurso de destino não corresponde à expressão da política.

  • O recurso existe, mas a condição de tag é avaliada como falsa.

  • Está faltando uma tag definida obrigatória em um recurso relacionado.

Não pare depois de confirmar a existência de um recurso. Confirme se as tags de recurso também atendem à política.

Revisar Configuração da Rede do Gateway

Se a operação com falha criar ou atualizar um gateway, confirme se o gateway faz referência à sub-rede e ao tipo de ponto final esperados.

Revise os seguintes campos de solicitação:

  • gateway.subnetId

  • gateway.endpointType

Verifique os seguintes requisitos de rede:

  • A sub-rede existe.

  • A sub-rede é regional.

  • A sub-rede está no compartimento esperado.

  • O tipo de ponto final corresponde ao design público ou privado pretendido.

  • O chamador está autorizado a usar a sub-rede e os recursos de rede relacionados.

Validar o Contexto da Solicitação

Para um gateway existente, obtenha os detalhes do gateway diretamente:

oci api-gateway gateway get --gateway-id <gateway_ocid>

Use a resposta para verificar os seguintes valores:

  • O gateway existe.

  • O gateway está no compartimento esperado.

  • O gateway usa a sub-rede pretendida.

  • O gateway usa o tipo de ponto final esperado.

Se a operação com falha criar uma implantação, verifique se a solicitação tem como alvo o gateway e o compartimento pretendidos.

Corrigir Política e Acesso a Recursos

Aplique a correção que corresponde à autorização com falha ou à verificação de acesso ao recurso.

Use as seguintes correções como guia:

  • Adicione ou corrija o manage api-gateway-family se o chamador não tiver permissões de recurso do Gateway de API.

  • Adicione ou corrija o manage virtual-network-family se o chamador não tiver permissões de sub-rede ou rede.

  • Adicione ou corrija o use functions-family se a implantação usar Funções.

  • Adicione ou corrija o manage certificate-associations se o gateway usar associações de certificados.

  • Adicione ou corrija o manage certificate-authority-family se o gateway usar CAs ou bundles de CA personalizados.

  • Crie ou corrija o grupo dinâmico de gateway e a política read secret-bundles se o gateway precisar ler segredos.

  • Corrija o escopo do compartimento se um recurso estiver fora do compartimento permitido.

  • Corrija os valores de tag ou a condição do IAM se a autorização baseada em tag falhar.

  • Corrija qualquer OCID incorreto na solicitação.

Lista de Verificação de Causa Raiz Comum

Antes de tentar novamente a solicitação, confirme o seguinte:

  • O chamador pode gerenciar recursos do API Gateway.

  • O chamador pode gerenciar recursos de rede.

  • O chamador tem a política específica do recurso exigida pela solicitação.

  • Qualquer grupo dinâmico de gateway tem o acesso secreto necessário.

  • Todos os recursos referenciados existem.

  • Todos os recursos referenciados estão nos compartimentos esperados.

  • Todas as condições baseadas em tag correspondem.

  • A solicitação usa os OCIDs corretos.

Verificar a Resolução

Depois de corrigir políticas do IAM, condições de tag ou acesso a recursos relacionados, repita a mesma operação de gateway ou implantação.

Verifique os seguintes resultados:

  • A operação não retorna mais NotAuthorizedOrNotFound ou RelatedResourceNotAuthorizedOrNotFound.

  • O gateway ou a implantação entra no estado de ciclo de vida esperado.

  • A solicitação não falha mais durante a autorização ou a validação do recurso relacionado.