Quels sont les moindres privilèges requis pour qu'un utilisateur puisse effectuer des opérations de création, de suppression, de modification, de sauvegarde et de restauration pour une instance de base de données Amazon RDS ?

Lecture de 7 minute(s)
0

Je souhaite limiter l'accès que j'accorde à mes utilisateurs AWS Identity and Access Management (IAM) à une instance de base de données Amazon Relational Database Service (Amazon RDS). Comment puis-je accorder aux utilisateurs IAM le moins de privilèges requis pour effectuer une action spécifique pour une instance de base de données Amazon RDS ?

Solution

Remarque : en cas d'erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), vérifiez que vous utilisez la version la plus récente d'AWS CLI.

1.    Ouvrez la console IAM, puis sélectionnez Users (Utilisateurs) dans le volet de navigation.

2.    Choisissez Add user (Ajouter un utilisateur, ) et entrez un User name (Nom d'utilisateur).

3.    Pour Access type (Type d'accès), choisissez AWS Management Console access (Accès à la console de gestion AWS) et créez un mot de passe pour utiliser la console Amazon RDS. Pour fournir un accès à l'interface de la ligne de commande AWS (AWS CLI), choisissez Programmatic access(Accès par programmation).

Important : pour Programmatic access, (Accès par programmation), veillez à télécharger l'ID de clé d'accès et la clé d'accès secrète en choisissant Download.csv. Vous aurez besoin des clés pour créer les jetons de sécurité ultérieurement.

4.    Vérifiez les autorisations et les balises, puis choisissez Create user (Créer un utilisateur). Cela crée un utilisateur IAM avec la stratégie IAMUserChangePassword.

5.    Créez des stratégies IAM pour les actions que vous souhaitez exécuter dans Amazon RDS.

6.    Revenez à la console IAM, puis sélectionnez Users (Rôles) dans le volet de navigation.

7.    Sélectionnez le rôle IAM que vous avez créé.

8.    Dans la vue Permissions, (Autorisations) sélectionnez Add inline policy (Ajouter une politique en ligne).

9.    Choisissez l'onglet JSON et entrez une ou plusieurs des stratégies suivantes en fonction de votre cas d'utilisation.

Remarque : les stratégies suivantes fournissent les privilèges minimum requis pour exécuter les actions spécifiées. Vous pouvez voir des erreurs (par exemple, IAMUser n'est pas autorisé à effectuer : rds:Action) dans la console Amazon RDS, car ce privilège n'est pas présent dans la stratégie. Le plus souvent, cette erreur se produit pour les actions Describe. L’erreur est attendue et n’affecte pas votre capacité à effectuer ces actions. Pour éviter cette erreur, vous pouvez modifier les exemples de politiques IAM suivants ou exécuter des actions à l'aide de l'interface de ligne de commande (CLI) AWS.

Création et suppression d'instances de base de données RDS

La stratégie suivante permet aux utilisateurs de créer des instances de base de données RDS sans le chiffrement activé :

{
  "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 stratégie suivante permet aux utilisateurs de créer des instances de base de données RDS avec le chiffrement activé :

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

Remarque : Pour utiliser une clé gérée par le client à des fins de chiffrement au lieu de la clé gérée par AWS par défaut, vous devez autoriser l'utilisation d'une clé gérée par le client.

La stratégie suivante permet aux utilisateurs de supprimer des instances de base de données RDS :

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

La politique suivante permet aux utilisateurs de créer et de supprimer des instances de base de données 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": "*"
    }
  ]
}

Arrêt et démarrage des instances de base de données RDS

La politique suivante permet aux utilisateurs d'arrêter et de démarrer des instances de base de données RDS :

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

Exécution de la sauvegarde et de la restauration (création d’instantanés de base de données, restauration d’instance de base de données à partir d’instantanés de base de données et restauration à un instant donné)

La politique suivante permet aux utilisateurs de créer des instantanés de base de données :

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

La stratégie suivante permet aux utilisateurs de restaurer des instances de base de données RDS à l’aide d’instantanés de base de données :

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

La politique suivante permet aux utilisateurs d'effectuer une restauration à un instant dans le passé :

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

Modification des instances de base de données RDS

La politique suivante permet aux utilisateurs de modifier le type de classe d'instance de base de données, le stockage alloué, le type de stockage et la version de l'instance :

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

Activation de Enhanced Monitoring (surveillance améliorée) et de Performance Insights (l'analyse des performances)

La stratégie suivante permet aux utilisateurs d'activer Enhanced Monitoring. Veillez à remplacer AccountID par chaque compte bénéficiant du rôle de surveillance amélioré :

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

Remarque : Lorsqu'il est utilisé avec un rôle iam:PassRole, un caractère générique (*) est trop permissif car il permet les autorisations iam:PassRole sur toutes les ressources. Par conséquent, il est recommandé de spécifier les Amazon Resource Names (ARN), comme indiqué dans l'exemple précédent.

La stratégie suivante permet aux utilisateurs d'activer Performance Insights (l'analyse des performances) :

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

Création, modification et suppression de groupes de paramètres de base de données et de groupes d'options de base de données

La politique suivante permet aux utilisateurs de créer, de modifier ou de supprimer des groupes de paramètres et des groupes d'options de base de données :

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

Affichage des métriques Amazon CloudWatch à partir de la console Amazon RDS

La politique suivante permet aux utilisateurs d'afficher les métriques CloudWatch à partir de la console Amazon RDS :

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

10.    Sélectionnez Examiner une stratégie.

11.    Saisissez le nom de la stratégie, puis sélectionnez Create policy (Créer une stratégie).


Informations connexes

Identité et gestion de l'accès pour Amazon RDS

Comment autoriser les utilisateurs à s'authentifier sur une instance de base de données MySQL Amazon RDS à l'aide de leurs informations d'identification IAM ?