Infraestructura Cloud Datacenter
- Jacobo Abdiel

- 18 ene
- 4 Min. de lectura
Aquí tienes los pasos esenciales para configurar la infraestructura escalable en la nube.
Primer paso, crear una red privada.
Crea tu datacenter con 3 subnets en este caso, development, staging y production llamado jchcommunity
gcloud compute networks create [Nombre de tu red] --project=[Nombre de tu proyecto] --description=cloud\ data\ center\ one --subnet-mode=custom --mtu=1460 --bgp-routing-mode=regional --bgp-best-path-selection-mode=legacy
gcloud compute networks subnets create development --project=[Nombre de tu proyecto] --description=development\ subnet --range=10.0.0.0/24 --stack-type=IPV4_ONLY --network=[Nombre de tu red] --region=northamerica-south1
gcloud compute networks subnets create staging --project=[Nombre de tu proyecto] --description=QA\ Process --range=10.0.1.0/24 --stack-type=IPV4_ONLY --network=[Nombre de tu red] --region=us-west2
gcloud compute networks subnets create production --project=[Nombre de tu proyecto] --description=all\ products --range=10.0.2.0/24 --stack-type=IPV4_ONLY --network=[Nombre de tu red] --region=us-west2
Diseño y planeación del almacenamiento
Primero determina el tipo de datos que los clientes van a almacenar (archivos, bases de datos, copias de seguridad, etc.), el volumen, el patrón de acceso y los requisitos de rendimiento y seguridad. En este caso, estaremos almacenando archivos.
Segundo la region en la cual estar ubicada la información en este caso utilizaremos us-east1 (South Carolina)
Y por último la arquitectura de los servicios de almacenamiento, centralizado o distribuido, hibrida, etc.
Aqui los pasos para crear un bucket en la nube de google cloud:
Creamos un bucket llamado jchcommunitystore con gsutil y le pondremos los siguientes parametros:
mb: Es el comando para "make bucket".
-l us-east1: Define la ubicación del bucket como la región us-east1.
-c standard: Establece la clase de almacenamiento por defecto como STANDARD.
gs://jchcommunitystore/: Es el nombre del bucket que se va a crear.
gsutil mb -l us-east1 -c standard gs://[Nombre de tu Almacenamiento]/Configuración de políticas y seguridad, usamos gcloud alpha para establecer las etiquetas y asignar la opcion de borrado suave soft delete:
gcloud alpha storage buckets update gs://[Nombre de tu Almacenamiento]/ --labels=env=development --iam-policy-management=enforced --uniform-bucket-level-access --soft-delete-duration=7dCrear una estructura de carpetas dentro del bucket, (que en realidad son prefijos del nombre del objeto):
publico/
interno/
confidencial/
restringido/
Configurar los Permisos de Acceso
Con el control de acceso granular (fine-grained access control) que configuraste, puedes aplicar políticas de IAM directamente a cada carpeta.
Permisos para la Carpeta publico/.
Para que el público general pueda acceder a estos archivos y solo los empleados puedan subirlos, necesitas dos roles:
Público general (lectura): Otorga el rol de roles/storage.objectViewer al "Usuario todo (allUsers)" para esta carpeta. Esto hace que los objetos sean públicamente visibles.
Empleados (escritura/subida): Otorga un rol con permisos de escritura (como roles/storage.objectCreator) a un grupo de usuarios o a usuarios específicos.
gcloud storage objects add-iam-policy-binding gs://[Nombre de tu Almacenamiento]/publico --member='group:empleados@tuempresa.com' --role='roles/storage.objectCreator' --condition=NonePermisos para la Carpeta interno/
Para datos de uso diario, el acceso debe limitarse a los empleados.
Empleados (lectura/escritura): Otorga el rol de roles/storage.objectAdmin a un grupo de empleados para que puedan gestionar y acceder a los objetos.
Línea de comando de ejemplo:
Bash
gcloud storage objects add-iam-policy-binding gs://[Nombre de tu Almacenamiento]/interno --member='group:empleados@tuempresa.com' --role='roles/storage.objectAdmin' --condition=NonePermisos para la Carpeta confidencial/
Para información que requiere mayor protección, limita el acceso solo a un grupo selecto de empleados.
Grupo de liderazgo/gerencia: Otorga el rol roles/storage.objectAdmin a un grupo de seguridad específico.
Línea de comando de ejemplo:
Bash
gcloud storage objects add-iam-policy-binding gs://[Nombre de tu Almacenamiento]/confidencial --member='group:liderazgo@tuempresa.com' --role='roles/storage.objectAdmin' --condition=NonePermisos para la Carpeta restringido/
Para datos con implicaciones legales, el acceso debe ser extremadamente limitado.
Grupo de seguridad/legal: Otorga el rol roles/storage.objectAdmin únicamente a un grupo muy pequeño de personal autorizado.
Línea de comando de ejemplo:
Bash
gcloud storage objects add-iam-policy-binding gs://[Nombre de tu Almacenamiento]/restringido --member='group:legal@tuempresa.com' --role='roles/storage.objectAdmin' --condition=NoneConsideraciones Adicionales
Jerarquía de Permisos: Los permisos de IAM se heredan. Un permiso a nivel de bucket (jchcommunitystore) anulará cualquier restricción que intentes aplicar a una subcarpeta. Por ello, es crucial que el control de acceso del bucket esté establecido de forma granular para que las políticas de carpeta funcionen.
Gestión de Accesos: Mantén los roles Storage Object Admin limitados, ya que otorgan control total sobre los objetos. Usa roles con menos privilegios como Storage Object Viewer y Storage Object Creator para un control más fino.
Pruebas: Después de configurar los permisos, prueba cada tipo de acceso con cuentas de prueba para asegurarte de que solo los usuarios correctos puedan acceder a los datos.
Usuarios de Prueba y Permisos de Acceso
Tipo de Usuario de Prueba | Rol y Acceso al Negocio | Carpeta (Prefijo) a Probar | Rol Mínimo de IAM (Google Cloud Storage) | Tareas de Prueba |
Público (Externo) | Público general / Visitante. | publico/ | roles/storage.objectViewer | Ver y descargar archivos. No debe poder subir, modificar o eliminar nada. |
Colaborador (Empleado) | Actividades diarias del negocio (operaciones). | interno/ | roles/storage.objectAdmin (a nivel de carpeta) | Subir, ver, modificar y eliminar archivos. Debe tener acceso denegado a las carpetas confidencial/ y restringido/. |
Ejecutivo (Liderazgo) | Estrategia, finanzas y datos personales de clientes. | confidencial/ | roles/storage.objectAdmin (a nivel de carpeta) | Subir, ver y administrar archivos. Debe poder acceder a interno/ y publico/, pero no debe acceder a restringido/. |
Legal/Seguridad (Elite) | Datos con repercusiones legales o de mercado. | restringido/ | roles/storage.objectAdmin (a nivel de carpeta) | Acceso total y exclusivo a esta carpeta. Debe ser el único en poder acceder a ella. |
Guía para la Validación de Permisos
Para realizar las pruebas de forma efectiva, debes utilizar cuentas o identidades separadas para simular cada tipo de usuario y verificar dos cosas:
Acceso Permitido (Positivo): El usuario debe ser capaz de realizar la acción esperada en su carpeta designada (por ejemplo, el Colaborador debe poder subir un archivo a interno).
Acceso Denegado (Negativo): El usuario no debe poder realizar ninguna acción (ver, subir, eliminar) en las carpetas a las que no tiene acceso. Por ejemplo, el Ejecutivo no debe poder ver el contenido de la carpeta restringido.
Nota Importante: Recuerda que al usar el Control de Acceso Fino (Fine-grained access control), los permisos de las subcarpetas tienen prioridad sobre los permisos más amplios del bucket, lo cual es fundamental para que esta estructura funcione correctamente.




Comentarios