Code Engine y seguridad
La arquitectura de IBM Cloud® Code Engine se ha creado pensando en la seguridad. Los componentes de Code Engine los gestiona y son propiedad de IBM.
Los clientes y sus cargas de trabajo se aíslan entre sí utilizando proyectos, que se basan en los espacios de nombres de Kubernetes. Los controles de acceso basados en roles se realizan en un nivel de recursos para permitir que sólo los usuarios
autorizados realicen determinadas operaciones en los recursos de un proyecto. El acceso de usuario lo controla Cloud Identity and Access Management (IAM). Las aplicaciones implementadas están disponibles a través de HTTPS, y Code
Engine crea y gestiona automáticamente por ti los certificados subyacentes de TLS. Code Engine proporciona protección inmediata contra DDoS para tu aplicación. El servicio DDoS protección de Code Engine lo ofrece Cloud
Internet Services (CIS) sin coste adicional para ti.
No se puede acceder a los trabajos de Code Engine externamente por definición. Sin embargo, los trabajos todavía pueden realizar solicitudes externas y pueden llamar internamente a aplicaciones de Code Engine. Para ver un ejemplo de un trabajo que llama a una aplicación internamente, consulta el repositorio «Samples for Code Engine » en GitHub.
Puede utilizar las siguientes características de seguridad para mejorar la seguridad.
| Característica de seguridad | Descripción |
|---|---|
| Autorizar el acceso con IAM | Otorgue acceso a otros usuarios a Code Engine utilizando Cloud Identity and Access Management (IAM). El IAM de IBM Cloud proporciona autenticación segura con la plataforma IBM Cloud, Code Engine y todos los recursos de su cuenta. La configuración de los roles y permisos de usuario adecuados es clave para limitar quién puede acceder a sus recursos. Consulte Gestión de acceso de usuarios. |
| Inhabilitar puntos finales externos | Despliegue la aplicación con un punto final externo inhabilitado que no esté expuesto al tráfico externo utilizando la opción --visibility=private o visibility=project. Consulte Opciones para la visibilidad de una aplicación Code Engine. |
| Almacenar imágenes en registros de imágenes privados | Configure un registro de imágenes privado, como el que proporciona IBM Cloud Container Registry, para controlar el acceso al registro y las imágenes que se pueden desplegar en Code Engine. Explore sus imágenes automáticamente con el Asesor de vulnerabilidades de IBM Cloud Container Registry. También puede añadir acceso a su propio registro privado personalizado. Consulte Acceso a registros de contenedores. |
| Crear código desde un repositorio privado | Almacene el código fuente en un repositorio privado y, a continuación, compile en IBM Cloud Container Registry. Consulte Acceso a repositorios de código privado. |
| Utilizar secretos para almacenar información confidencial | Puede almacenar información, como contraseñas y claves SSH, en un secreto. Para obtener más información, consulte Trabajar con secretos. |
| Añadir prestaciones de autenticación y autorización | Si está exponiendo su aplicación o función en Code Engine en una API pública o sitio web, es posible que desee restringir el acceso a determinados usuarios o ubicaciones (rangos de direcciones IP). Aunque Code Engine proporciona prestaciones para restringir el acceso a las API que puede utilizar para gestionar proyectos de Code Engine y sus entidades, es responsabilidad del propietario del origen de código añadir las prestaciones de autenticación y autorización adecuadas para proteger el código que se ejecuta al alcanzar los puntos finales. Por ejemplo, puede utilizar IBM Cloud App ID para añadir prestaciones de autenticación y autorización para el código. |
| Renovar periódicamente los certificados de « TLS » | Si utilizas asignaciones de dominio personalizadas para dar acceso a tus aplicaciones o funciones, debes asegurarte de que tus certificados de TLS tengan una fecha de caducidad; por ejemplo, 90 días. Debe rotar periódicamente el certificado con un certificado actualizado (que tenga su propia fecha de caducidad). Lo ideal es utilizar la automatización para rotar los certificados. Por ejemplo, puedes utilizar una tarea de « Code Engine » activada por una suscripción cron para rotar el certificado. Si almacenas secretos en IBM Cloud Secrets Manager, te recomendamos que utilices IBM Cloud Event Notifications para que tu proyecto Code Engine tenga en cuenta las rotaciones de certificados. Puedes encontrar una aplicación de ejemplo que utiliza notificaciones de eventos visitando nuestro repositorio de ejemplos de « Code Engine » en GitHub. |
Versiones de « TLS » y conjuntos de cifrado compatibles
La API de Code Engine y los puntos finales de las aplicaciones admiten la seguridad de la capa de transporte ( TLS ), el protocolo 1.2 (o superior) y los siguientes conjuntos de cifrado.
TLS conjuntos de cifrado
ECDHE-ECDSA-AES128-GCM-SHA256ECDHE-ECDSA-AES256-GCM-SHA384ECDHE-RSA-AES128-GCM-SHA256ECDHE-RSA-AES256-GCM-SHA384ECDHE-ECDSA-CHACHA20-POLY1305ECDHE-RSA-CHACHA20-POLY1305
Protección DDoS
Code Engine Ofrece protección inmediata contra el virus « DDoS » para tu aplicación. La protección contra el virus « DDoS » de Code Engine la proporciona Cloud Internet Services (CIS) sin ningún coste adicional para ti.
DDoS La protección abarca los ataques a los protocolos de las capas 3 y 4 del Modelo de Interconexión de Sistemas (OSI) ( TCP/IP ), pero no los ataques a la capa 7 ( HTTP ).
Para abordar los ataques de capa 7, puede realizar los pasos siguientes para que el tráfico se ejecute a través de una ruta segura utilizando el dominio personalizado y ya no esté disponible para la Internet pública a través del dominio proporcionado Code Engine.
- Obtenga el dominio personalizado.
- En Code Engine, cree una correlación de dominio personalizada para la app.
- Configure una instancia de Cloud Internet Services (CIS) para gestionar el dominio personalizado.
- Añada el dominio personalizado a la instancia de CIS.
- Configure un equilibrador de carga global en CIS.
- Activa el modo de proxy « HTTP » para el equilibrador de carga en CIS. Esto activa la protección « DDoS » en la capa 7 y otras funciones de seguridad de « CIS ».
- En Code Engine, desactive las correlaciones de dominio proporcionadas por el sistema público de la aplicación. Vaya a la aplicación, en el separador Correlaciones de dominio de la app, seleccione Sin correlación de dominio de sistema externo.
- Pulse Crear para guardar la revisión de la aplicación.
Para obtener más información sobre DDoS en CIS, consulte Cómo tratar con ataques de denegación de servicio distribuida en CIS. Para obtener más información sobre cómo abordar los ataques de capa 7, consulte Mitigación de ataques de capa 7 en CIS.