Saltar al contenido

¿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?

6 minutos de lectura
0

Quiero conceder a mis usuarios de AWS Identity and Access Management (IAM) los permisos mínimos necesarios para administrar las instancias de base de datos de Amazon Relational Database Service (Amazon RDS).

Solución

Nota: Si se muestran errores al ejecutar comandos de la Interfaz de la línea de comandos de AWS (AWS CLI), consulta Solución de problemas de AWS CLI. Además, asegúrate de utilizar la versión más reciente de la AWS CLI.

Para configurar el acceso de los usuarios de IAM a la instancia de base de datos de RDS, sigue estos pasos:

  1. Abre la consola de IAM.
  2. En el panel de navegación, selecciona Usuarios.
  3. Selecciona Agregar usuario e introduce un nombre de usuario.
  4. Para el tipo de acceso, elige el acceso a la consola de administración de AWS y, a continuación, crea una contraseña para usar la consola de Amazon RDS. Para proporcionar acceso a la AWS CLI, elige Acceso mediante programación.
    Importante: En Acceso mediante programación, elige Download.csv para descargar el ID de la clave de acceso y la clave de acceso secreta. Necesitará las claves para crear los tokens de seguridad más adelante.
  5. Revisa los permisos y las etiquetas y, a continuación, selecciona Crear usuario.
    Nota: Esto crea un usuario de IAM con la política IAMUserChangePassword.
  6. Crea políticas de IAM para las acciones que desees realizar en Amazon RDS.
  7. Agrega tus políticas de IAM a tu usuario.

Ejemplos de políticas de IAM

Los siguientes ejemplos de políticas proporcionan los privilegios mínimos necesarios para llevar a cabo las acciones especificadas. Es posible que veas errores en la consola de Amazon RDS porque el permiso requerido no está presente en la política. Por ejemplo, es posible que veas el mensaje de error IAMUser is not authorized to perform: rds:Action.

Es posible que se produzcan errores en las acciones de descripción, pero el error no afecta a tu capacidad para realizar esas acciones. Para evitar errores, modifica los siguientes ejemplos de políticas de IAM o utiliza la AWS CLI para realizar acciones.

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

Para permitir que los usuarios creen instancias de base de datos de RDS sin activar el cifrado, usa la siguiente política:

{  
  "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": "*"
    }
  ]
}

Para permitir que los usuarios creen instancias de base de datos de RDS con el cifrado activado, usa la siguiente política:

{  
  "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, debes autorizar el uso de una clave administrada por el cliente.

Para permitir que los usuarios eliminen instancias de bases de datos de RDS, usa la siguiente política:

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

Para permitir que los usuarios creen y eliminen instancias de bases de datos de RDS, usa la siguiente política:

{  
  "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

Para permitir que los usuarios inicien y detengan instancias de bases de datos de RDS, usa la siguiente política:

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

Realización de copias de seguridad y recuperación

Para permitir que los usuarios creen instantáneas de bases de datos, usa la siguiente política:

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

Para permitir que los usuarios restauren instancias de base de datos de RDS que utilizan instantáneas de base de datos, usa la siguiente política:

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

Para permitir que los usuarios realicen una recuperación a un momento dado, usa la siguiente política:

{  
  "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

Para permitir que los usuarios cambien el tipo de clase de instancia de base de datos, el almacenamiento asignado, el tipo de almacenamiento y la versión de la instancia, usa la siguiente política:

{  
  "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

Cuando se usa con un iam:PassRole, un comodín (*) es demasiado permisivo porque permite los permisos iam:PassRole en todos los recursos. Se recomienda especificar los ARN.

Para permitir que los usuarios activen la supervisión mejorada, usa la siguiente política:

{  
  "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: Asegúrate de reemplazar AccountID por cada usuario que reciba el rol de supervisión mejorada.

Para permitir que los usuarios activen la información sobre el rendimiento, usa la siguiente política:

{  
  "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

Para permitir que los usuarios creen, modifiquen o eliminen grupos de parámetros y grupos de opciones de base de datos, usa la siguiente política:

{  
  "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

Para permitir los usuarios vean las métricas de CloudWatch desde la consola de Amazon RDS, usa la siguiente política:

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

Información relacionada

Identity and Access Management para Amazon RDS

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