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-familyno compartimento que contém o gateway ou a implantação. -
O chamador não tem
manage virtual-network-familyno 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-familyse o chamador não tiver permissões de recurso do Gateway de API. -
Adicione ou corrija o
manage virtual-network-familyse o chamador não tiver permissões de sub-rede ou rede. -
Adicione ou corrija o
use functions-familyse a implantação usar Funções. -
Adicione ou corrija o
manage certificate-associationsse o gateway usar associações de certificados. -
Adicione ou corrija o
manage certificate-authority-familyse o gateway usar CAs ou bundles de CA personalizados. -
Crie ou corrija o grupo dinâmico de gateway e a política
read secret-bundlesse 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
NotAuthorizedOrNotFoundouRelatedResourceNotAuthorizedOrNotFound. -
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.