En esta sección te guiaremos en la creación de una instancia de PostgreSQL en Google Cloud SQL, la configuración de la base de datos y el almacenamiento seguro de las credenciales usando Google Secret Manager.
Primero, necesitas habilitar la API de Cloud SQL para poder crear y gestionar instancias de bases de datos:
gcloud services enable sqladmin.googleapis.com
Ahora puedes crear una instancia de Cloud SQL configurada para PostgreSQL. Usa el siguiente comando para crear la instancia:
gcloud sql instances create [INSTANCE_NAME] \
--database-version=POSTGRES_13 \
--tier=db-f1-micro \
--region=[REGION]
Reemplaza [INSTANCE_NAME]
por el nombre que desees para tu instancia y [REGION]
por la región donde quieres desplegarla (ejemplo: us-central1
).
Es importante que configures el acceso adecuado a tu instancia. Si necesitas habilitar el acceso público desde una dirección IP específica, puedes hacerlo con el siguiente comando:
gcloud sql instances patch [INSTANCE_NAME] \
--authorized-networks="[YOUR_PUBLIC_IP]/32"
Reemplaza [YOUR_PUBLIC_IP]
con la dirección IP desde la cual deseas acceder a la instancia.
Una vez que la instancia esté en funcionamiento, puedes crear una base de datos dentro de ella con el siguiente comando:
gcloud sql databases create [DATABASE_NAME] \
--instance=[INSTANCE_NAME]
Reemplaza [DATABASE_NAME]
con el nombre de la base de datos que deseas crear y [INSTANCE_NAME]
por el nombre de la instancia de Cloud SQL que acabas de crear.
Es recomendable crear un usuario para conectarse a la base de datos PostgreSQL. Usa este comando para crear un usuario:
gcloud sql users create [USERNAME] \
--host=% \
--instance=[INSTANCE_NAME] \
--password=[PASSWORD]
Reemplaza [USERNAME]
con el nombre del usuario, [INSTANCE_NAME]
con el nombre de tu instancia, y [PASSWORD]
con una contraseña segura.
Para almacenar de manera segura las credenciales de tu base de datos, puedes utilizar Google Secret Manager. A continuación te explicamos cómo crear un secreto para almacenar las credenciales:
Primero, habilita la API de Secret Manager:
gcloud services enable secretmanager.googleapis.com
Luego, crea el secreto donde almacenarás el nombre de usuario y la contraseña:
echo -n "[PASSWORD]" | gcloud secrets create [SECRET_NAME] \
--data-file=- \
--replication-policy="automatic"
Reemplaza [PASSWORD]
con la contraseña de tu base de datos y [SECRET_NAME]
con el nombre del secreto que prefieras.
También puedes almacenar el nombre de usuario de la base de datos en un secreto diferente o en el mismo:
echo -n "[USERNAME]" | gcloud secrets versions add [SECRET_NAME] --data-file=-
Reemplaza [USERNAME]
por el nombre del usuario que creaste en la base de datos.
Para acceder a los valores almacenados en Google Secret Manager desde tu aplicación, usa el siguiente comando para obtener el valor del secreto:
gcloud secrets versions access latest --secret=[SECRET_NAME]
Finalmente, para conectarte a la instancia de PostgreSQL desde la terminal, puedes usar el siguiente comando:
gcloud sql connect [INSTANCE_NAME] --user=[USERNAME]
Este comando abrirá una conexión interactiva a tu base de datos PostgreSQL.