Compartir a través de


No se pueden extraer imágenes de Azure Container Registry mediante la autenticación de identidad administrada

En este artículo se describe cómo solucionar errores de extracción de imágenes al implementar en Azure Container Instances (ACI) desde Azure Container Registry (ACR) mediante una identidad administrada.

Síntomas

Al intentar implementar un grupo de contenedores y extraer imágenes de un registro de contenedor de Azure que se ejecuta detrás de un punto de conexión privado mediante una identidad administrada, se produce un error en la extracción de imágenes.

Causa

Estas son algunas causas de errores de extracción de imágenes:

  • Desde el lado de ACI:

    • En función de la versión de la API de ACI que se usa al implementar el grupo de contenedores, el formato de credencial proporcionado en la plantilla de ARM del grupo de contenedores podría no ser válido.
    • El uso de una identidad administrada en el grupo de contenedores podría infringir las limitaciones de ACI.
    • La definición del grupo de contenedores de la plantilla de ARM podría tener un formato incorrecto.
  • Desde el lado ACR:

    • Es posible que esté usando una versión de API anterior.
    • Es posible que esté usando una zona DNS privada para el registro de contenedor.

Solución de problemas desde el lado de ACI

  1. Compruebe si usa una versión de api de ACI anterior a 2021-07-01.

    Si es así, es posible que vea el error "InvalidImageRegistryCredentialType":

    $ az deployment group create -g <resourcegroupname> --template-file containergroup_trusted.json 
    Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
        "code": "InvalidImageRegistryCredentialType", 
        "message": "Identity in 'imageRegistryCredentials' of container group 'acrtestcontainergroup' is not supported." 
      } 
    } 
    

    Para resolver este problema, use ACI API versión 2021-07-01 o posterior.

  2. Compruebe si está infringiendo las limitaciones de ACI.

    Entre las limitaciones se incluyen:

    • Grupos de contenedores insertados en la red virtual.
    • Windows Server 2016 grupos de contenedores.
    • Intentar resolver la zona DNS privada de ACR.

    Para resolver este problema, asegúrese de que no infringe esas limitaciones.

  3. Compruebe si la definición del grupo de contenedores tiene el formato correcto.

    Si no es así, es posible que vea los siguientes errores:

    • Código de error "AmbiguousImageResitryCredentialType":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "AmbiguousImageResitryCredentialType", 
          "message": "The registry credential type in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' cannot be detected. Please set exactly one of username or identity" 
      } 
      } 
      
    • Código de error "InvalidImageRegistryIdentity":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "InvalidImageRegistryIdentity", 
          "message": "The identity in the 'imageRegistryCredentials' of container group 'acrtestcontainergroup' not found in container group identity list." 
      } 
      } 
      
    • Código de error "InvalidRequestContent":

      Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
          "code": "InvalidRequestContent", 
          "message": "The request content was invalid and could not be deserialized: 'Required property 'server' not found in JSON. Path 'properties.imageRegistryCredentials[0]', line 1, position 586.'." 
      } 
      }
      

    Para resolver este problema, debe proporcionar las siguientes propiedades en la plantilla de ARM:

Solución de problemas desde el lado de ACR

  1. Compruebe si la identidad administrada tiene asignado el AcrPull rol.

    Si no es así, es posible que vea el error "InaccessibleImage":

    Deployment failed. Correlation ID: <Correlation ID>. { 
      "error": { 
        "code": "InaccessibleImage", 
        "message": "The image 'myacr.azurecr.io/pythonworker:v1' in container group 'acrtestcontainergroup' is not accessible. Please check the image and registry credential." 
      } 
    } 
    

    Para resolver este problema, conceda el AcrPull rol a la identidad administrada. Para obtener más información, consulte Concesión de permisos de identidad para acceder a otros recursos de Azure.

  2. Compruebe si ACR tiene habilitados los servicios de confianza . Si no es así, habilite los servicios de confianza.

Ponte en contacto con nosotros para obtener ayuda

Si tiene preguntas o necesita ayuda, cree una solicitud de soporte o busque consejo en la comunidad de Azure. También puede enviar comentarios sobre el producto con los comentarios de la comunidad de Azure.