
CloudSpec es una herramienta de código abierto para validar sus recursos en sus proveedores de nube utilizando un lenguaje lógico que todos pueden entender.Con su sintaxis razonablemente simple, puede validar la configuración de sus recursos de nube, evitando errores que pueden generar problemas de disponibilidad o confidencialidad.
Introducción
Con CloudSpec, usted valida los recursos en su proveedor de la nube. Un recurso puede ser cualquier cosa, desde una instancia EC2 hasta una regla SES. Cualquier cosa que implemente un proveedor de CloudSpec.
Los recursos tienen propiedades y asociaciones. Las propiedades definen la forma o configuración del recurso, mientras que las asociaciones definen sus relaciones con otros recursos. Con CloudSpec, no solo puede validar la configuración del recurso, sino también la configuración de sus recursos asociados. Por ejemplo, tomemos una instancia EC2. Tiene propiedades que definen su forma, como su ID de instancia única, su nombre, su tipo y demás. Pero también tiene asociaciones como la subred a la que pertenece, los volúmenes de EBS adjuntos. , la AMI que utiliza, etc. No solo puede validar si una instancia EC2 es de un tipo de instancia en particular o si tiene habilitado el indicador de terminación de eliminación, sino también el tamaño de sus volúmenes adjuntos, el bloque CIDR de su subred, o cualquier otra propiedad en sus recursos asociados, o recursos asociados a sus recursos asociados, y así sucesivamente.
Sus recursos en la nube se entrelazan, creando un gráfico. Un gráfico que puede recorrer y validar como mejor le parezca de acuerdo con sus mejores prácticas o políticas de cumplimiento. Esa capacidad, además de su lenguaje lógico, es la belleza de CloudSpec.
establecer aws:regiones = [“us-east-1”, “eu-west-1”]
use «./my_module» como my_module
regla «Los cubos deben tener habilitados los registros de acceso»
en aws:s3:cubo
afirmar access_logs está habilitado
regla final
regla «Las instancias deben usar volúmenes ‘gp2’ y tener al menos 50 GiBs de tamaño».
en aws:ec2:instancia
con etiquetas[“environment”] igual a «producción»
afirmar dispositivos (
> volumen (
tipo igual a «gp2» y
tamaño gte 50
)
)
fin
Puede encontrar la sintaxis completa en la documentación de referencia de CloudSpec.
CloudSpec en sí no admite ningún recurso. El núcleo de CloudSpec es el intérprete de sintaxis para los archivos de especificación y su motor de validación. Sin embargo, CloudSpec utiliza proveedores, que son extensiones de CloudSpec que admiten cada tipo diferente de recurso.
Un proveedor define la forma de cada tipo de recurso, propiedades y asociaciones, y la lógica para cargar esos recursos.
Puede encontrar los proveedores disponibles y los recursos que brindan en la documentación de referencia de CloudSpec.
Ejecutando la imagen de la ventana acoplable CloudSpec
Puede compilar y ejecutar el jar de CloudSpec usted mismo o puede ejecutar la última imagen de Docker directamente desde el registro de Docker Hub.
Para usar la imagen de Docker, primero debe colocar sus archivos de especificaciones (por ejemplo, specs/my_module
) en un directorio para montarlo en el contenedor Docker. De lo contrario, CloudSpec no podrá abrir los archivos de especificaciones fuera del contenedor.
exportar AWS_ACCESS_KEY_ID=* exportar AWS_SECRET_ACCESS_KEY=*
exportar AWS_REGION=eu-west-1
docker run -v “/my_module:/my_module” -e AWS_ACCESS_KEY_ID -e AWS_SECRET_ACCESS_KEY -e AWS_REGION efoncubierta/cloudspec run -d my_module
Si está ejecutando el contenedor docker en AWS con un rol de IAM dedicado adjunto, puede omitir las variables de entorno de AWS.
Para obtener más opciones del comando CloudSpec, consulte la ayuda:
ventana acoplable ejecuta efoncubierta/cloudspec -h
Construir CloudSpec
Si desea crear CloudSpec usted mismo, siga estas instrucciones.
Requisitos:
- Git
- Experto 3
- OpenJDK 8
- Estibador
Extraiga el código fuente y cree CloudSpec:
Clonar repositorio git
clon de git https://github.com/efoncubierta/cloudspec
cd cloudspec
Construir CloudSpec
mvn instalación limpia
Ejecutar CloudSpec
java -jar runner/target/cloudspec-${VERSIÓN}.jar -h