Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Un registro de contenedor de Azure almacena y administra imágenes privadas de contenedor de Docker, de una forma similar a la que Docker Hub almacena imágenes públicas. También puede hospedar repositorios para gráficos de Helm (versión preliminar), un formato de empaquetado para implementar aplicaciones en Kubernetes. Puede usar webhooks para desencadenar eventos cuando determinadas acciones tienen lugar en uno de los repositorios de registro. Los webhooks pueden responder a eventos en el nivel de registro o pueden limitarse a una etiqueta de repositorio específica. Con un registro con replicación geográfica, puede configurar cada webhook para responder a eventos en una réplica regional específica.
El punto de conexión de un webhook debe ser accesible públicamente desde el registro. Puede configurar solicitudes de webhook del registro para autenticarse en un punto de conexión protegido.
Para obtener información detallada sobre las solicitudes de webhook, consulte Referencia de esquema de webhook de Azure Container Registry.
Importante
Utilice HTTPS y envíe credenciales de webhook solo en el encabezado Authorization. Azure Container Registry enmascara el valor del encabezado Authorization en el historial de eventos de webhook. No enmascara las credenciales en el URI del servicio, en otros encabezados personalizados o en cuerpos de solicitud o respuesta.
No incluya contraseñas, tokens de acceso, claves de API u otros secretos en ningún lugar del URI del servicio. Esta restricción incluye credenciales antes del nombre de host (por ejemplo, https://user:password@host), la ruta de acceso y la cadena de consulta. También incluye direcciones URL de devolución de llamada firmadas que contienen tokens de autenticación en sus cadenas de consulta. No incluya secretos en ningún encabezado personalizado distinto de Authorization. Para obtener más información, consulte Proteger las credenciales del webhook.
Requisitos previos
- Registro de contenedor de Azure: cree un registro de contenedor en la suscripción de Azure. Por ejemplo, use Azure Portal o la CLI de Azure. Los niveles de servicio de Azure Container Registry tienen distintas cuotas de webhooks.
- CLI de docker: para configurar el equipo local como un host de Docker y tener acceso a los comandos de la CLI de Docker, instale Docker Engine.
Creación de webhooks: Azure Portal
- Inicie sesión en Azure Portal.
- Vaya al registro de contenedor en el que desea crear un webhook.
- En Servicios, seleccione Webhooks.
- Seleccione Agregar en la barra de herramientas del webhook.
- Complete el formulario Crear webhook con la siguiente información:
| Value | Descripción |
|---|---|
| Nombre de webhook | El nombre que desea dar al webhook. Solo puede contener letras y números, y su longitud debe oscilar entre 5 y 50 caracteres. |
| Location | Para un registro con replicación geográfica, especifique la región de Azure de la réplica del registro. |
| URI de servicio | El URI HTTPS donde el webhook debe enviar notificaciones POST. No incluya contraseñas, tokens de acceso, claves de API u otros secretos en ningún lugar del URI. Esta regla se aplica a las credenciales antes del nombre de host (por ejemplo, https://user:password@host), la ruta de acceso y la cadena de consulta. |
| Encabezados personalizados | Los encabezados que van a pasar junto con la solicitud POST. Deben tener el formato "clave: valor". Envíe credenciales solo en el Authorization encabezado . No incluya contraseñas, tokens de acceso, claves de API ni otros secretos en ningún otro encabezado. Solo se enmascara el valor del Authorization encabezado en el historial de eventos de webhook. |
| Acciones de desencadenador | Acciones que desencadenan el webhook. Las acciones incluyen insertar y eliminar imágenes, insertar y eliminar gráficos de Helm, y poner imágenes en cuarentena. Puede elegir una o varias acciones para desencadenar el webhook. |
| Estado | El estado del webhook después de su creación. Esto está habilitada de manera predeterminada. |
| Ámbito | El ámbito en el que trabaja el webhook. Si no se especifica, el ámbito sirve para todos los eventos del registro. Se puede especificar para un repositorio o una etiqueta con el formato "repositorio:etiqueta"o "repositorio:*" para todas las etiquetas de un repositorio. |
Formulario de webhook de ejemplo:
Creación de webhooks: CLI de Azure
Para crear un webhook mediante la CLI de Azure, use el comando az acr webhook create. El siguiente comando crea un webhook para los eventos de eliminación de imágenes en el registro mycontainerregistry:
az acr webhook create --registry mycontainerregistry --name myacrwebhook01 --actions delete --uri https://webhookuri.com --headers "Authorization=$WEBHOOK_AUTH"
Proteger las credenciales de webhook
Azure Container Registry almacena la configuración del webhook y registra las solicitudes que envía al punto de conexión, junto con las respuestas, en el historial de eventos de webhook. Para reducir el riesgo de exponer credenciales, siga estas instrucciones:
- Utilice un URI de servicio HTTPS. No envíe credenciales a través de HTTP.
- Envíe credenciales solo en el
Authorizationencabezado . En el historial de eventos de webhook, Azure Container Registry enmascara el valor del encabezadoAuthorizationen los encabezados de solicitud y respuesta registrados. - No coloque credenciales en ningún otro lugar. Azure Container Registry no enmascara estos valores en el historial de eventos de webhook:
- El URI del servicio, incluidas las credenciales antes del nombre de host (por ejemplo,
https://user:password@host), la ruta de acceso y la cadena de consulta. - Encabezados personalizados distintos de
Authorization. - Cuerpos de solicitud y respuesta.
- El URI del servicio, incluidas las credenciales antes del nombre de host (por ejemplo,
- Asegúrese de que el punto de conexión no devuelva credenciales en su cuerpo de respuesta o en encabezados de respuesta distintos de
Authorization. - No confíe en la codificación para ocultar las credenciales. La codificación de direcciones URL, la codificación Base64 y el entrecomillado del shell no protegen un secreto.
- Limite quién puede leer la configuración del webhook. Los usuarios con el
Microsoft.ContainerRegistry/registries/webhooks/getCallbackConfig/actionpermiso pueden leer el URI de servicio configurado y todos los encabezados personalizados, incluido el valor de encabezado sin máscaraAuthorization. Los usuarios con el permisoMicrosoft.ContainerRegistry/registries/webhooks/listEvents/actionpueden leer el historial de eventos de webhook, pero no pueden ver el valor del encabezadoAuthorizationsin enmascarar. Los roles integrados, como Propietario y Colaborador, incluyen estos permisos. - Si una credencial se incluyó anteriormente en el URI del servicio, en otro encabezado personalizado o en un cuerpo de solicitud o respuesta, revoque o rote esa credencial.
Webhook de prueba
Azure portal
Antes de usar el webhook, puede probarlo con el botón Ping. El comando Ping envía una solicitud POST genérica al punto de conexión especificado y registra la respuesta. Mediante la característica de ping puede comprobar que ha configurado correctamente el webhook.
- Seleccione el webhook que desea probar.
- En la barra de herramientas superior, seleccione Ping.
- Compruebe la respuesta del punto de conexión en la columna ESTADO HTTP.
CLI de Azure
Para probar un webhook de ACR con la CLI de Azure, use el comando az acr webhook ping.
az acr webhook ping --registry mycontainerregistry --name myacrwebhook01
Para ver los resultados, use el comando az acr webhook list-events.
az acr webhook list-events --registry mycontainerregistry08 --name myacrwebhook01
Eliminación del webhook
Azure portal
Se puede eliminar cada webhook seleccionando uno y, después, con el botón Eliminar en Azure Portal.
CLI de Azure
az acr webhook delete --registry mycontainerregistry --name myacrwebhook01
Pasos siguientes
Referencia del esquema de webhook
Para más información sobre el formato y las propiedades de las cargas del evento JSON emitidas por Azure Container Registry, consulte la referencia del esquema de webhook:
Referencia de esquema de webhook de Azure Container Registry
Eventos de Event Grid
Además de los eventos de webhook de registro nativos descritos en este artículo, Azure Container Registry puede emitir eventos a Event Grid:
Guía de inicio rápido: Envío de eventos del registro de contenedor a Event Grid