Asegurar los recursos en AWS comienza con el uso eficaz del servicio de Gestión de Identidad y Acceso (IAM). Terraform permite la gestión de políticas y roles IAM de forma declarativa, lo que facilita la replicación y administración coherente de permisos.
Por ejemplo, al definir un rol IAM con permisos específicos, es importante asegurarse de que las políticas adheridas sean las mínimas necesarias para los recursos que va a gestionar. A continuación, se muestra un ejemplo de cómo definir un rol IAM que solo permite acciones de lectura en S3:
resource "aws_iam_role" "read_only_s3" { name = "read_only_s3" assume_role_policy = jsonencode({ Version = "2012-10-17", Statement = [{ Effect = "Allow", Principal = {"Service": "ec2.amazonaws.com"}, Action = "sts:AssumeRole" }] }) } resource "aws_iam_policy" "read_only_s3_policy" { name = "ReadOnlyS3Policy" description = "Policy to provide read-only access to S3 buckets" policy = jsonencode({ Version = "2012-10-17", Statement = [{ Effect = "Allow", Action = ["s3:GetObject", "s3:ListBucket"], Resource = ["arn:aws:s3:::your-bucket-name", "arn:aws:s3:::your-bucket-name/*"] }] }) } resource "aws_iam_role_policy_attachment" "read_only_s3_attach" { role = aws_iam_role.read_only_s3.name policy_arn = aws_iam_policy.read_only_s3_policy.arn }
Implementar el cifrado de datos es una práctica crítica para protegerlos tanto en tránsito como en reposo. Con Terraform, se pueden declarar recursos como S3 y RDS con cifrado habilitado de manera predeterminada.
Por ejemplo, para crear un bucket en S3 con cifrado predeterminado y las mejores prácticas de seguridad, puedes usar:
resource "aws_s3_bucket" "secure_bucket" { bucket = "my-secure-bucket" server_side_encryption_configuration { rule { apply_server_side_encryption_by_default { sse_algorithm = "AES256" } } } versioning { enabled = true } lifecycle_rule { id = "log" enabled = true prefix = "log/" transition { days = 30 storage_class = "GLACIER" } expiration { days = 365 } } }
Configuar AWS CloudTrail para registrar todas las acciones realizadas en sus cuentas AWS permite monitoreo y auditoría efectivos. Terraform facilita la creación y configuración de este servicio para garantizar que todas las acciones sean registradas y auditables.
Aquí un ejemplo de cómo definir un trail simple en CloudTrail utilizando Terraform:
resource "aws_cloudtrail" "my_cloudtrail" { name = "my-cloudtrail" s3_bucket_name = aws_s3_bucket.secure_bucket.id include_global_service_events = true is_multi_region_trail = true enable_logging = true }
Esta píldora formativa está extraída del Curso online de Fundamentos de Terraform con AWS: automatización y eficiencia en la nube.
No pierdas tu oportunidad y ¡continúa aprendiendo!
ADR Formación utiliza cookies propias y de terceros con fines analíticos anónimos, para guardar tus preferencias y garantizar el correcto funcionamiento del sitio web.
Puedes aceptar todas las cookies, rechazarlas o configurarlas según tus preferencias utilizando los botones correspondientes.
Puedes obtener más información y volver a configurar tus preferencias en cualquier momento en la Política de cookies