En esta página, se explica cómo preparar tu instancia de AlloyDB para PostgreSQL para permitir la autenticación de la base de datos a través de la administración de identidades y accesos (IAM).
La autenticación de IAM complementa la autenticación de la base de datos a través de usuarios estándar de PostgreSQL, que admite cada clúster de AlloyDB. Si habilitas la autenticación de IAM en tu clúster, puedes usar los roles de usuario de IAM o PostgreSQL para autenticarte con ese clúster.
De forma predeterminada, una instancia de AlloyDB no tiene habilitada la autenticación de IAM. Para habilitar la autenticación de IAM, completa los siguientes pasos:
Habilita manualmente la autenticación de IAM en cada instancia a la que las cuentas de usuario o de servicio de IAM deban conectarse.
Para cada cuenta de servicio o usuario de IAM que necesite acceder como usuario de base de datos, completa los siguientes pasos:
Con las herramientas de administrador de IAM, otorga a ese usuario o cuenta de servicio los roles
alloydb.databaseUser
yserviceusage.serviceUsageConsumer
.Con Google Cloud CLI, crea un usuario de la base de datos correspondiente a ese usuario o cuenta de servicio en tu clúster de AlloyDB.
Con una cuenta de administrador de la base de datos, como
postgres
, otorga los privilegios de acceso de usuario de la base de datos nueva a las tablas de la base de datos adecuadas.
Puedes repetir estos pasos cada vez que necesites agregar más usuarios de IAM a tu clúster de AlloyDB.
Habilita o inhabilita la autenticación de IAM
Para habilitar la autenticación de IAM en una instancia, establece
la marca alloydb.iam_authentication
en esa instancia en on
.
Para inhabilitar la autenticación de IAM en una instancia, vuelve a establecer alloydb.iam_authentication
en su valor predeterminado, off
.
Para obtener más información sobre cómo configurar marcas en instancias de AlloyDB, consulta Configura las marcas de base de datos de una instancia.
Otorga acceso a una instancia a un usuario o una cuenta de servicio de IAM
Habilitar el acceso de IAM a un usuario de base de datos nuevo es un proceso de dos pasos:
Actualiza la configuración de IAM de tu proyecto para otorgar acceso a la base de datos de AlloyDB al usuario o la cuenta de servicio de IAM adecuados.
Crea un usuario de base de datos nuevo en tu clúster y establece el nombre de usuario como la dirección de correo electrónico del usuario de IAM o la cuenta de servicio.
Puedes repetir el paso dos para otorgarle a una cuenta de IAM acceso a otros clústeres dentro de tu proyecto.
Actualiza una cuenta de IAM con el rol adecuado
Puedes otorgar a los usuarios o cuentas de servicio de IAM la capacidad de autenticarse con instancias de AlloyDB si les otorgas los siguientes roles de IAM:
alloydb.databaseUser
: Permite que el usuario se conecte a tu instancia de AlloyDB.serviceusage.serviceUsageConsumer
: Proporciona al usuario acceso a una API que verifica los permisos.
Para hacerlo, sigue las instrucciones que se indican en Otorga acceso a otros usuarios. En el paso en el que seleccionas un rol para otorgarle al principal de IAM, elige alloydb.databaseUser
.
Agrega un usuario o una cuenta de servicio de IAM a un clúster
Console
Ve a la página Clústeres.
Haz clic en el nombre del clúster al que deseas agregar un usuario.
Haz clic en Usuarios.
Haz clic en Agregar cuenta de usuario.
Selecciona Cloud IAM.
En el campo Principal, ingresa el principal de IAM.
Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo,
kai@altostrat.com
.Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo
.gserviceaccount.com
. Por ejemplo, para especificar la cuenta de serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-service@my-project.iam
aquí.Haz clic en Agregar.
gcloud
Para crear un usuario de la base de datos de PostgreSQL basado en un usuario de IAM o una cuenta de servicio, usa el comando gcloud alloydb users create
.
gcloud alloydb users create USERNAME \
--cluster=CLUSTER \
--region=REGION \
--type=IAM_BASED
Reemplaza las siguientes variables:
USERNAME
: Es el identificador del usuario de IAM que deseas agregar como usuario nuevo de la base de datos.Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo,
kai@altostrat.com
.Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo
.gserviceaccount.com
. Por ejemplo, para especificar la cuenta de serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-service@my-project.iam
aquí.CLUSTER
: Es el ID del clúster en el que se creará esta cuenta de usuario de la base de datos.REGION
: Es el ID de la región en la que reside el clúster. Por ejemplo,us-central1
Otorga los permisos de base de datos adecuados a los usuarios de IAM
Cuando se agrega un usuario de IAM a una instancia de base de datos, a ese usuario nuevo no se le otorgan privilegios en ninguna base de datos de forma predeterminada.
Cuando un usuario o una cuenta de servicio se conectan a una base de datos, pueden ejecutar consultas en cualquier objeto de la base de datos cuyo acceso se le haya otorgado como PÚBLICO.
Si necesitan acceso adicional, se pueden otorgar más privilegios con la sentencia GRANT
de PostgreSQL.
GRANT SELECT ON TABLE_NAME TO "USERNAME";
Reemplaza las siguientes variables:
USERNAME
: Es la dirección de correo electrónico del usuario. Debes incluir comillas dobles alrededor de la dirección.TABLE_NAME
: Es el nombre de la tabla a la que deseas que se otorgue acceso al usuario.
Quita una cuenta de servicio o un usuario de IAM de un clúster
Console
Ve a la página Clústeres.
Haz clic en el nombre del clúster del que quieres quitar al usuario.
Haz clic en Usuarios.
En la fila que representa al usuario que quieres quitar, haz clic en
Abrir acciones para este usuario.Selecciona Quitar.
En el cuadro de diálogo ¿Quitar cuenta de usuario?, haz clic en Quitar.
gcloud
Usa el comando gcloud alloydb users delete
.
gcloud alloydb users delete USERNAME \
--cluster=CLUSTER \
--region=REGION
Reemplaza lo siguiente:
USERNAME
: Es el identificador del usuario de IAM que deseas quitar del clúster.Para una cuenta de usuario de IAM, proporciona la dirección de correo electrónico completa de la cuenta de usuario. Por ejemplo,
kai@altostrat.com
.Para una cuenta de servicio de IAM, proporciona la dirección de la cuenta de servicio sin el sufijo
.gserviceaccount.com
. Por ejemplo, para especificar la cuenta de serviciomy-service@my-project.iam.gserviceaccount.com
, debes usar el valormy-service@my-project.iam
aquí.CLUSTER
: Es el ID del clúster del que se quitará este usuario.REGION
: Es el ID de la región en la que reside el clúster. Por ejemplo,us-central1