Un usuario requiere ciertos permisos para acceder a una instancia de base de datos de Amazon RDS. Esto se configura mediante AWS IAM (Identity and Access Management). En este tutorial veremos cómo se realiza esta configuración.
La configuración tiene dos partes.
Autenticación
Control de acceso
Incluye crear un nombre de usuario, contraseña y generar claves de acceso para el usuario. Puede utilizar una clave de acceso para acceder mediante programación a AWS RDS. Las herramientas SDK y CLI utilizan claves de acceso para iniciar sesión criptográficamente con una solicitud.
También podemos usar el rol de IAM para autenticar al usuario. Pero el rol no está vinculado a ningún usuario especÃfico, sino que cualquier usuario puede asumir temporalmente el rol y realizar la tarea requerida. Después de completar la tarea, el rol se puede revocar y el usuario ya no puede autenticarse.
Una vez que un usuario está autenticado, una polÃtica adjunta a ese usuario determina el tipo de tareas que el usuario puede realizar. A continuación, se muestra un ejemplo de una polÃtica que le permite crear una instancia de base de datos RDS en la instancia t2.micro para MySQL DBMS.
{ "Version": "2018-09-11", "Statement": [ { "Sid": "AllowCreateDBInstanceOnly", "Effect": "Allow", "Action": [ "rds:CreateDBInstance" ], "Resource": [ "arn:aws:rds:*:123456789012:db:test*", "arn:aws:rds:*:123456789012:og:default*", "arn:aws:rds:*:123456789012:pg:default*", "arn:aws:rds:*:123456789012:subgrp:default" ], "Condition": { "StringEquals": { "rds:DatabaseEngine": "mysql", "rds:DatabaseClass": "db.t2.micro" } } } ] }
En el siguiente ejemplo, vemos una polÃtica que permite cualquier acción descriptiva para cualquier recurso RDS. El sÃmbolo * se utiliza para indicar cualquier recurso.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"AllowRDSDescribe", "Effect":"Allow", "Action":"rds:Describe*", "Resource":"*" } ] }
La polÃtica a continuación evita que un usuario elimine una instancia de base de datos especÃfica.
{ "Version":"2012-10-17", "Statement":[ { "Sid":"DenyDelete1", "Effect":"Deny", "Action":"rds:DeleteDBInstance", "Resource":"arn:aws:rds:us-west-2:123456789012:db:my-mysql-instance" } ] }
🚫