¿Cuáles son los privilegios mínimos necesarios para que un usuario pueda crear, eliminar, modificar, hacer copias de seguridad y recuperar una instancia de base de datos de Amazon RDS?

7 minutos de lectura
0

Quiero limitar el acceso que doy a mis usuarios de AWS Identity and Access Management (IAM) a una instancia de base de datos de Amazon Relational Database Service (Amazon RDS). ¿Cómo puedo conceder a los usuarios de IAM los privilegios mínimos necesarios para llevar a cabo una acción específica en una instancia de base de datos de Amazon RDS?

Resolución

Nota: Si recibe errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), asegúrese de utilizar la versión más reciente de la AWS CLI.

1.    Abra la consola de IAM y seleccione Usuarios en el panel de navegación.

2.    Seleccione Añadir usuario e introduzca un nombre de usuario.

3.    Para el tipo de acceso, elija el acceso a la consola de administración de AWS y, a continuación, cree una contraseña para usar la consola de Amazon RDS. Para proporcionar acceso a la Interfaz de la línea de comandos de AWS (AWS CLI), elija Acceso mediante programación.

**Importante:**En Acceso mediante programación, asegúrese de descargar el ID de clave de acceso y la clave de acceso secreta. Para ello, seleccione Download.csv. Necesitará las claves para crear los tokens de seguridad más adelante.

4.    Revise los permisos y las etiquetas y, a continuación, seleccione Crear usuario. Esto crea un usuario de IAM con la política IAMUserChangePassword.

5.    Cree políticas de IAM para las acciones que desee llevar a cabo en Amazon RDS.

6.    Vuelva a la consola de IAM y seleccione Usuarios en el panel de navegación.

7.    Elija el usuario de IAM que acaba de crear.

8.    En la pestaña Permisos, elija Añadir política insertada.

9.    Elija la pestaña JSON y, después, introduzca una o más de las siguientes políticas según su caso de uso.

Nota: Las siguientes políticas proporcionan los privilegios mínimos necesarios para llevar a cabo las acciones especificadas. Es posible que vea errores (por ejemplo, El usuario de IAM no está autorizado a rds:Action) en la consola de Amazon RDS porque este privilegio no está presente en la política. La mayoría de las veces, este error se produce en las acciones de descripción. Se espera un error que no afectará su capacidad para llevar a cabo dichas acciones. Para evitar este error, puede modificar los siguientes ejemplos de políticas de IAM o llevar a cabo acciones mediante la AWS CLI.

Creación y eliminación de instancias de base de datos de RDS

La siguiente política permite a los usuarios crear instancias de base de datos de RDS sin activar el cifrado:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup"
      ],
      "Resource": "*"
    }
  ]
}

La siguiente política permite a los usuarios crear instancias de base de datos de RDS con el cifrado activado:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup",
        "kms:ListAliases"
      ],
      "Resource": "*"
    }
  ]
}

Nota: Para usar una clave administrada por el cliente para el cifrado en lugar de la clave administrada de AWS predeterminada, debe autorizar el uso de una clave administrada por el cliente.

La siguiente política permite a los usuarios eliminar instancias de base de datos de RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:DeleteDBInstance",
        "rds:DescribeDBInstances"
      ],
      "Resource": "*"
    }
  ]
}

La siguiente política permite a los usuarios crear y eliminar instancias de base de datos de RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:DescribeVpcAttribute",
        "ec2:DescribeSecurityGroups",
        "ec2:DescribeInternetGateways",
        "ec2:DescribeAvailabilityZones",
        "ec2:DescribeVpcs",
        "ec2:DescribeAccountAttributes",
        "ec2:DescribeSubnets",
        "rds:Describe*",
        "rds:ListTagsForResource",
        "rds:CreateDBInstance",
        "rds:CreateDBSubnetGroup",
        "rds:DeleteDBInstance"
      ],
      "Resource": "*"
    }
  ]
}

Detención e inicio de instancias de base de datos de RDS

La siguiente política permite a los usuarios detener e iniciar instancias de base de datos de RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:StopDBInstance",
        "rds:StartDBInstance",
        "rds:Describe*"
      ],
      "Resource": "*"
    }
  ]
}

Copias de seguridad y recuperación (creación de instantáneas de bases de datos, restauración de instancias de base de datos a partir de instantáneas de base de datos y restauración a un momento dado)

La siguiente política permite a los usuarios crear instantáneas de bases de datos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:Describe*",
        "rds:CreateDBSnapshot"
      ],
      "Resource": "*"
    }
  ]
}

La siguiente política permite a los usuarios restaurar las instancias de base de datos de RDS mediante instantáneas de base de datos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:RestoreDBInstanceFromDBSnapshot"
      ],
      "Resource": "*"
    }
  ]
}

La siguiente política permite a los usuarios restaurar a un momento dado:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:RestoreDBInstanceToPointInTime"
      ],
      "Resource": "*"
    }
  ]
}

Modificación de instancias de base de datos de RDS

La siguiente política permite a los usuarios cambiar el tipo de clase de instancia de base de datos, el almacenamiento asignado, el tipo de almacenamiento y la versión de la instancia:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:ModifyDBInstance"
      ],
      "Resource": "*"
    }
  ]
}

Activación de la supervisión mejorada e información sobre el rendimiento

La siguiente política permite a los usuarios activar la supervisión mejorada. Asegúrese de reemplazar AccountID por cada cuenta que reciba la función de supervisión mejorada:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "iam:GetRole",
        "iam:ListRoles",
        "rds:ModifyDBInstance",
        "rds:Describe*",
        "ec2:Describe*"
      ],
      "Resource": "*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "iam:PassRole"
      ],
      "Resource": "arn:aws:iam::AccountID:role/rds-monitoring-role"
    }
  ]
}

Nota: Cuando se usa con un iam:PassRole, un comodín (*) es demasiado permisivo porque permite los permisos iam:PassRole en todos los recursos. Por lo tanto, se recomienda especificar los nombres de recursos de Amazon (ARN), como se muestra en el ejemplo anterior.

La siguiente política permite a los usuarios activar la información sobre el rendimiento:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:ModifyDBInstance",
        "ec2:Describe*",
        "rds:Describe*",
        "pi:*"
      ],
      "Resource": "*"
    }
  ]
}

Creación, modificación y eliminación de grupos de parámetros de base de datos y grupos de opciones de base de datos

La siguiente política permite a los usuarios crear, modificar o eliminar grupos de parámetros y grupos de opciones de base de datos:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "ec2:Describe*",
        "rds:Describe*",
        "rds:CreateDBParameterGroup",
        "rds:ModifyDBParameterGroup",
        "rds:DeleteDBParameterGroup",
        "rds:CreateOptionGroup",
        "rds:ModifyOptionGroup",
        "rds:DeleteOptionGroup"
      ],
      "Resource": "*"
    }
  ]
}

Visualización de las métricas de Amazon CloudWatch desde la consola de Amazon RDS

La siguiente política permite a los usuarios ver las métricas de CloudWatch desde la consola de Amazon RDS:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "rds:Describe*",
        "cloudwatch:GetMetricData",
        "cloudwatch:GetMetricStatistics"
      ],
      "Resource": "*"
    }
  ]
}

10.    Elija Revisar la política.

11.    Introduzca un Nombre para su política y, a continuación, elija Crear política.


Información relacionada

Administración de la identidad y el acceso en Amazon RDS

¿Cómo puedo permitir que los usuarios se autentiquen en una instancia de base de datos MySQL de Amazon RDS con sus credenciales de IAM?