Quels sont les privilèges les moins élevés 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 ?

Dernière mise à jour : 20-01-2021

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 accorder aux utilisateurs IAM les privilèges les moins élevés requis pour effectuer une action spécifique pour une instance de base de données Amazon RDS ?

Résolution

Remarque : Si vous recevez des erreurs lors de l'exécution de commandes depuis l'interface de ligne de commande AWS (AWS CLI), assurez-vous d'utiliser la version la plus récente d'AWS CLI.

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 (Accès à AWS Management Console) et créez un mot de passe pour utiliser la console Amazon RDS. Pour fournir un accès à l'interface de ligne de commande (CLI) AWS, 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 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 politique suivante permet aux utilisateurs de créer des instances de base de données RDS sans 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"
            ],
            "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 politique 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 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": [
        {
            "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 politique 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 politique 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 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": [
        {
            "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 politique suivante permet aux utilisateurs d'activer Enhanced Monitoring :

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

La politique 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 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": [
        {
            "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 politique 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 le nom de la politique, puis sélectionnez Create policy (Créer une politique).