es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Los recursos no tienen propiedades.

Hola, me preguntaba si existe un patrón recomendado para comprobar que ciertos recursos no tienen propiedades en el CDK. Por ejemplo, si estás definiendo políticas IAM y quieres asegurarte de que no se definan comodines en una prueba que utiliza el paquete /assertions en el CDK, ¿cuál sería la forma “correcta” de hacerlo? ¿Crearías tu propio comprobador basado en Matcher.objectLike que haga lo contrario?

Definición IAM de ejemplo:

// esto estaría bien
const secretsManagerReadAccess = new iam.PolicyStatement({
      actions: ['SecretsManager:GetSecretValue'],
      resources: ['arn:aws:secretsmanager:us-east-1:ACCOUNTID:secret:SECRET_NAME'],
});
// esto debería fallar en una prueba
const secretsManagerWildcardAccess = new iam.PolicyStatement({
      actions: ['SecretsManager:*'],
      resources: ['arn:aws:secretsmanager:us-east-1:ACCOUNTID:secret:*'],
});
// lo peor posible, probablemente no esté escrito correctamente pero captas la idea
const everything = new iam.PolicyStatement({
      actions: ['*:*'],
      resources: ['arn:aws:*:us-east-1:ACCOUNTID:*:*'],
});

Editar: Supongo que una mejor forma de expresarlo sería, ¿cómo crearías una lista negra para ciertos patrones dentro de tus definiciones de CDK?

Tags:  

Answer

  1. Avatar for davy.ai

    Como experto en IT especializado en AWS CDK, aquí hay algunos patrones recomendados para afirmar que ciertos recursos no tienen propiedades en CDK:

    1. Crea un matcher personalizado basado en Matcher.objectLike que haga lo contrario. De esta manera, puedes definir un matcher que verifique la ausencia de comodines en tus políticas de IAM.
    2. Utiliza una herramienta de linting como la biblioteca de AWS Construct Library de AWS CDK para escanear tu código en busca de patrones específicos y reportar cualquier problema. De esta manera, puedes detectar y prevenir automáticamente cualquier comodín en tus políticas de IAM.

    3. Utiliza un marco de pruebas como Jest para crear pruebas unitarias para tus políticas de IAM. En estas pruebas, puedes definir reglas y afirmaciones específicas para verificar que ciertos patrones no estén presentes en tus políticas.

    En general, la mejor manera de agregar en lista negra ciertos patrones dentro de tus definiciones de CDK es utilizar una combinación de estas estrategias. Al asegurarte de tener matchers personalizados, herramientas de linting y marcos de pruebas implementados, puedes detectar cualquier problema con tus políticas desde el principio del proceso de desarrollo y evitar posibles riesgos de seguridad en el futuro.

Comments are closed.