Fallo al crear o actualizar el gateway o el despliegue debido a políticas de IAM que faltan o a recursos relacionados a los que no se puede acceder
Descubra cómo solucionar los fallos de creación y actualización de gateway causados por políticas de IAM que faltan o recursos relacionados a los que no se puede acceder cuando se utiliza el servicio API Gateway.
Una solicitud para crear o actualizar un gateway o despliegue puede fallar incluso cuando el cuerpo de la solicitud es válido. El fallo se puede producir porque el emisor de llamada, el gateway o un recurso al que se hace referencia no cumplen los requisitos de arrendamiento, compartimento, etiqueta o recurso relacionado.
Antes de solucionar problemas
Revise los siguientes temas antes de actualizar políticas o recursos relacionados:
Emitir síntomas
Es posible que vea uno o más de los siguientes síntomas:
-
La creación o actualización del gateway falla aunque el cuerpo de la solicitud sea válido.
-
La creación o actualización del despliegue falla aunque exista el gateway de destino.
-
La respuesta incluye
NotAuthorizedOrNotFound. -
La respuesta incluye
RelatedResourceNotAuthorizedOrNotFound. -
El emisor de llamada tiene algunos permisos de API Gateway, pero la operación aún falla.
-
La solicitud utiliza condiciones de IAM basadas en etiquetas y la autorización aún falla.
Causas posibles
Las operaciones de creación y actualización pueden requerir más que la política que permite el acceso a los recursos de API Gateway. El emisor de llamada también debe tener acceso a cada recurso relacionado que utiliza la solicitud.
Las causas comunes incluyen los siguientes problemas:
-
El emisor de llamada carece de
manage api-gateway-familyen el compartimento que contiene el gateway o el despliegue. -
El emisor de llamada carece de
manage virtual-network-familyen el compartimento que contiene la subred o los recursos de red relacionados. -
El despliegue utiliza una función, como funciones, certificados, autoridades de certificación o secretos de almacén, pero falta la política específica de función necesaria.
-
La solicitud hace referencia a un recurso de un compartimento que está fuera del ámbito de la política.
-
Una condición de IAM basada en etiquetas no coincide con el recurso de destino o el recurso relacionado.
-
La solicitud utiliza un identificador de Oracle Cloud (OCID) incorrecto para el gateway, la subred, el certificado, el secreto u otro recurso relacionado.
Revisar políticas necesarias
Comience por confirmar que el emisor de la llamada tiene las políticas principales que se aplican al escenario de despliegue de backend HTTP más común.
Para gateways y despliegues que utilizan servicios de backend HTTP, el emisor de llamada normalmente necesita las siguientes 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 solo cubren el caso común. Si el gateway o el despliegue utilizan funciones adicionales, agregue la política que coincida con cada función.
Utilice las siguientes políticas específicas de funciones como punto de partida:
-
Para un despliegue que utiliza OCI Functions como servicio backend, otorgue acceso a los recursos de funciones:
Allow group <group-name> to use functions-family in compartment <functions-compartment> -
Para un dominio personalizado que utiliza un certificado de servicio Certificates, otorgue acceso a las asociaciones de certificados:
Allow group <group-name> to manage certificate-associations in compartment <apigw-compartment> -
Para los grupos de autoridades de certificación (CA) o CA personalizados en un almacén de confianza de gateway, otorgue acceso a los recursos de autoridad de certificación:
Allow group <group-name> to manage certificate-authority-family in compartment <apigw-compartment> -
Para las credenciales de caché de respuesta o las credenciales de proveedor de autenticación almacenadas en almacenes en el servicio Vault, cree un grupo dinámico para el gateway y otorgue al gateway acceso para leer el grupo de secretos:
allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment> -
Para acceder a un secreto específico, utilice una política que limite el acceso a ese OCID secreto:
allow dynamic-group <dynamic-group-name> to read secret-bundles in compartment <secret-compartment> where target.secret.id='<secret_ocid>'
Revisar la respuesta al error
Utilice la respuesta con fallos para identificar qué operación ha fallado y qué error de autorización se ha devuelto.
Registre los siguientes campos de respuesta:
-
operation_name -
status -
code -
opc-request-id
Para este problema, una respuesta fallida típica incluye los siguientes valores:
-
operation_name: create_deployment -
status: 404 -
code: NotAuthorizedOrNotFound
Mantenga el valor opc-request-id para que pueda correlacionar la solicitud fallida con los datos de diagnóstico y soporte.
Revisar ámbito de política de IAM
Haga coincidir la operación fallida con el ámbito de política que necesita la operación.
Para las operaciones de creación o actualización de gateway, verifique los siguientes requisitos:
-
El emisor de llamada puede gestionar recursos de gateway de API en el compartimento que contiene el gateway.
-
El emisor de llamada puede gestionar los recursos de red en el compartimento que contiene la subred y los recursos de red relacionados.
Para las operaciones de creación o actualización del despliegue, verifique los siguientes requisitos:
-
El emisor de llamada puede gestionar los recursos de API Gateway en el compartimento que contiene el despliegue.
-
El emisor de llamada tiene cada política específica de función que necesita la configuración del despliegue.
Si la solicitud utiliza un dominio personalizado, un grupo de CA, un secreto de almacén o un backend de Functions, verifique la política específica de función correspondiente.
Revisión de compartimentos y recursos relacionados
Una solicitud puede fallar incluso cuando existe la política principal de gateway de API. El fallo se puede producir cuando falta un recurso relacionado, no se puede acceder a él o está fuera del ámbito de la política.
Verifique que el emisor de llamada pueda acceder a los siguientes recursos, según corresponda:
-
Gateway de destino.
-
Compartimento de despliegue de destino.
-
Subred a la que hace referencia el gateway.
-
Cualquier recurso de certificado.
-
Cualquier grupo de CA o recurso de CA.
-
Cualquier servicio de backend de Functions.
-
Cualquier secreto de almacén que necesite el gateway o el flujo de despliegue.
Verifique que cada recurso está en un compartimento que cubre la política correspondiente.
Revisar condiciones de política basadas en etiquetas
Si el arrendamiento utiliza condiciones de IAM basadas en etiquetas, confirme que la condición de etiqueta coincide con el emisor de la llamada y con cada recurso de destino.
Los puntos de fallo típicos relacionados con etiquetas incluyen los siguientes problemas:
-
La etiqueta de grupo de entidades de solicitud no coincide con la etiqueta de recurso de destino.
-
El valor de etiqueta de recurso de destino no coincide con la expresión de política.
-
El recurso existe, pero la condición de etiqueta se evalúa como falsa.
-
Falta una etiqueta definida necesaria en un recurso relacionado.
No se detenga después de confirmar que existe un recurso. Confirme que las etiquetas de recurso también cumplen la política.
Revisar configuración de red de gateway
Si la operación fallida crea o actualiza un gateway, confirme que el gateway hace referencia a la subred y el tipo de punto final esperados.
Revise los siguientes campos de solicitud:
-
gateway.subnetId -
gateway.endpointType
Verifique los siguientes requisitos de red:
-
La subred existe.
-
La subred es regional.
-
La subred está en el compartimento esperado.
-
El tipo de punto final coincide con el diseño público o privado previsto.
-
El emisor de llamada está autorizado a utilizar la subred y los recursos de red relacionados.
Validar el contexto de solicitud
Para un gateway existente, obtenga los detalles del gateway directamente:
oci api-gateway gateway get --gateway-id <gateway_ocid>
Utilice la respuesta para verificar los siguientes valores:
-
La puerta de enlace existe.
-
El gateway está en el compartimento esperado.
-
La puerta de enlace utiliza la subred deseada.
-
El gateway utiliza el tipo de punto final esperado.
Si la operación fallida crea un despliegue, verifique que la solicitud tiene como destino el gateway y el compartimento previstos.
Corregir acceso a recursos y políticas
Aplique la corrección que coincida con la autorización fallida o la comprobación de acceso a recursos.
Utilice las siguientes correcciones como guía:
-
Agregue o corrija
manage api-gateway-familysi el emisor de llamada no tiene permisos de recurso de gateway de API. -
Agregue o corrija
manage virtual-network-familysi el emisor de llamada no tiene permisos de subred o red. -
Agregue o corrija
use functions-familysi el despliegue utiliza Functions. -
Agregue o corrija
manage certificate-associationssi el gateway utiliza asociaciones de certificados. -
Agregue o corrija
manage certificate-authority-familysi el gateway utiliza CA o grupos de CA personalizados. -
Cree o corrija el grupo dinámico de gateway y la política
read secret-bundlessi el gateway debe leer secretos. -
Corrija el ámbito de compartimento si un recurso está fuera del compartimento permitido.
-
Corrija los valores de etiqueta o la condición de IAM si falla la autorización basada en etiquetas.
-
Corrija cualquier OCID incorrecto en la solicitud.
Lista de comprobación de causas raíz comunes
Antes de reintentar la solicitud, confirme todo lo siguiente:
-
El emisor de llamada puede gestionar los recursos de API Gateway.
-
El emisor de llamada puede gestionar los recursos de red.
-
El emisor de llamada tiene la política específica de la función requerida por la solicitud.
-
Cualquier grupo dinámico de gateway tiene el acceso secreto que necesita.
-
Existen todos los recursos a los que se hace referencia.
-
Todos los recursos a los que se hace referencia están en los compartimentos esperados.
-
Todas las condiciones basadas en etiquetas coinciden.
-
La solicitud utiliza los OCID correctos.
Verificar la Resolución
Después de corregir las políticas de IAM, las condiciones de etiqueta o el acceso a recursos relacionados, vuelva a intentar la misma operación de gateway o despliegue.
Verifique los siguientes resultados:
-
La operación ya no devuelve
NotAuthorizedOrNotFoundniRelatedResourceNotAuthorizedOrNotFound. -
El gateway o el despliegue pasan al estado del ciclo de vida esperado.
-
La solicitud ya no falla durante la autorización o la validación de recursos relacionados.