Quels sont les privilèges les moins élevés requis pour qu’un utilisateur effectue des opérations de création, de suppression, de modification, de sauvegarde et de récupération pour une instance de base de données Amazon RDS ?

Date de la dernière mise à jour : 30/12/2019

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 ?

Résolution

1.    Ouvrez la console IAM, puis sélectionnez Roles (Rôles) 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 à AWS Management Console) et créez un mot de passe pour à l’aide de la console Amazon RDS. Pour fournir un accès à l’interface de 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 Roles (Rôles) dans le volet de navigation.

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

8.    Dans la vue Autorisations, sélectionnez Add inline policy (Ajouter une stratégie 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 stratégies IAM suivants, ou vous pouvez exécuter des actions à l’aide de l’interface de ligne de commande 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 chiffrement activé :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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": [
        {
            "Sid": "VisualEditor0",
            "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": "*"
        }
    ]
}

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

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

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

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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 stratégie suivante permet aux utilisateurs d’arrêter et de démarrer des instances de base de données RDS :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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 stratégie suivante permet aux utilisateurs de créer des instantanés de base de données :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:*",
                "rds:Describe*",
                "rds:RestoreDBInstanceFromDBSnapshot"
            ],
            "Resource": "*"
        }
    ]
}

La stratégie suivante permet aux utilisateurs d’effectuer une restauration à un instant dans le passé :

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

Modification des instances de base de données RDS

La stratégie 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": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:Describe*",
                "rds:Describe*",
                "rds:ModifyDBInstance"
            ],
            "Resource": "*"
        }
    ]
}

Activation de la surveillance améliorée et de l’analyse des performances

La stratégie suivante permet aux utilisateurs d’activer la surveillance améliorée :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "iam:GetRole",
                "iam:ListRoles",
                "iam:PassRole",
                "rds:ModifyDBInstance",
                "rds:Describe*",
                "ec2:Describe*"
            ],
            "Resource": "*"
        }
    ]
}

La stratégie suivante permet aux utilisateurs d’activer Performance Insights :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "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 stratégie suivante permet aux utilisateurs de créer, modifier ou supprimer des groupes de paramètres DB et des groupes d’options :

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "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 stratégie suivante permet aux utilisateurs d’afficher les métriques CloudWatch à partir de la console Amazon RDS :

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

10.    Sélectionnez Examiner une stratégie.

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