AWS Database Migration Service exemples de politiques basées sur l'identité - AWS Service de Migration de Base de Données

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

AWS Database Migration Service exemples de politiques basées sur l'identité

Par défaut, IAM les utilisateurs et les rôles ne sont pas autorisés à créer ou à modifier AWS DMS des ressources. Ils ne peuvent pas non plus effectuer de tâches à l'aide du AWS Management Console AWS CLI, ou AWS API. Un IAM administrateur doit créer des IAM politiques qui accordent aux utilisateurs et aux rôles l'autorisation d'effectuer des API opérations spécifiques sur les ressources spécifiques dont ils ont besoin. L'administrateur doit ensuite associer ces politiques aux IAM utilisateurs ou aux groupes qui ont besoin de ces autorisations.

Pour savoir comment créer une politique IAM basée sur l'identité à l'aide de ces exemples de documents de JSON stratégie, voir Création de politiques dans l'JSONonglet du Guide de l'IAMutilisateur.

Bonnes pratiques en matière de politiques

Les politiques basées sur l'identité déterminent si quelqu'un peut créer, accéder ou supprimer AWS DMS des ressources dans votre compte. Ces actions peuvent entraîner des frais pour votre Compte AWS. Lorsque vous créez ou modifiez des politiques basées sur l’identité, suivez ces instructions et recommandations :

  • Commencez AWS par les politiques gérées et passez aux autorisations du moindre privilège : pour commencer à accorder des autorisations à vos utilisateurs et à vos charges de travail, utilisez les politiques AWS gérées qui accordent des autorisations pour de nombreux cas d'utilisation courants. Ils sont disponibles dans votre Compte AWS. Nous vous recommandons de réduire davantage les autorisations en définissant des politiques gérées par les AWS clients spécifiques à vos cas d'utilisation. Pour plus d'informations, consultez les politiques AWS gérées ou les politiques AWS gérées pour les fonctions professionnelles dans le Guide de IAM l'utilisateur.

  • Appliquer les autorisations du moindre privilège : lorsque vous définissez des autorisations à IAM l'aide de politiques, accordez uniquement les autorisations nécessaires à l'exécution d'une tâche. Pour ce faire, vous définissez les actions qui peuvent être entreprises sur des ressources spécifiques dans des conditions spécifiques, également appelées autorisations de moindre privilège. Pour plus d'informations sur l'utilisation IAM pour appliquer des autorisations, consultez la section Politiques et autorisations IAM dans le guide de IAM l'utilisateur.

  • Utilisez des conditions dans IAM les politiques pour restreindre davantage l'accès : vous pouvez ajouter une condition à vos politiques pour limiter l'accès aux actions et aux ressources. Par exemple, vous pouvez rédiger une condition de politique pour spécifier que toutes les demandes doivent être envoyées en utilisantSSL. Vous pouvez également utiliser des conditions pour accorder l'accès aux actions de service si elles sont utilisées par le biais d'un service spécifique Service AWS, tel que AWS CloudFormation. Pour plus d'informations, voir Éléments IAM JSON de politique : Condition dans le guide de IAM l'utilisateur.

  • Utilisez IAM Access Analyzer pour valider vos IAM politiques afin de garantir des autorisations sécurisées et fonctionnelles. IAM Access Analyzer valide les politiques nouvelles et existantes afin qu'elles soient conformes au langage des IAM politiques (JSON) et IAM aux meilleures pratiques. IAMAccess Analyzer fournit plus de 100 vérifications des politiques et des recommandations exploitables pour vous aider à créer des politiques sécurisées et fonctionnelles. Pour plus d'informations, consultez la section Validation des politiques d'IAMAccess Analyzer dans le guide de IAM l'utilisateur.

  • Exiger l'authentification multifactorielle (MFA) : si vous avez un scénario qui nécessite des IAM utilisateurs ou un utilisateur root Compte AWS, activez-le MFA pour une sécurité supplémentaire. Pour exiger le MFA moment où les API opérations sont appelées, ajoutez MFA des conditions à vos politiques. Pour plus d'informations, consultez la section Configuration de l'APIaccès MFA protégé dans le Guide de l'IAMutilisateur.

Pour plus d'informations sur les meilleures pratiques en matière de sécuritéIAM, consultez la section Bonnes pratiques en matière de sécurité IAM dans le Guide de IAM l'utilisateur.

Utilisation de la console AWS DMS

La politique suivante vous donne accès à AWS DMS, y compris à la AWS DMS console, et spécifie également les autorisations pour certaines actions nécessaires à partir d'autres services Amazon tels qu'AmazonEC2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }, { "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service:region:account:resourcetype/id" } ] }

Une description de ces autorisations peut vous aider à mieux comprendre pourquoi chacune d'entre elles est nécessaire à l'utilisation de la console.

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher ses clés AWS KMS disponibles et leurs alias sur la console. Cette entrée n'est pas obligatoire si vous connaissez le nom de ressource Amazon (ARN) de la KMS clé et que vous utilisez uniquement le AWS Command Line Interface (AWS CLI).

{ "Effect": "Allow", "Action": [ "kms:ListAliases", "kms:DescribeKey" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

La section suivante est obligatoire pour certains types de point de terminaison qui nécessitent qu'un rôle ARN soit transmis au point de terminaison. En outre, si les AWS DMS rôles requis ne sont pas créés à l'avance, la AWS DMS console est en mesure de créer le rôle. Si tous les rôles sont configurés à l'avance, ils sont tous nécessaires dans iam:GetRole et iam:PassRole. Pour plus d'informations sur les rôles , consultez Création des IAM rôles à utiliser avec AWS CLI et AWS DMS API.

{ "Effect": "Allow", "Action": [ "iam:GetRole", "iam:PassRole", "iam:CreateRole", "iam:AttachRolePolicy" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

La section suivante est obligatoire car elle AWS DMS doit créer l'EC2instance Amazon et configurer le réseau pour l'instance de réplication créée. Comme ces ressources existent dans le compte du client, il est obligatoire de pouvoir effectuer ces actions au nom du client.

{ "Effect": "Allow", "Action": [ "ec2:DescribeVpcs", "ec2:DescribeInternetGateways", "ec2:DescribeAvailabilityZones", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:ModifyNetworkInterfaceAttribute", "ec2:CreateNetworkInterface", "ec2:DeleteNetworkInterface" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

La section suivante est obligatoire pour permettre à l'utilisateur d'afficher les métriques de l'instance de réplication.

{ "Effect": "Allow", "Action": [ "cloudwatch:Get*", "cloudwatch:List*" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

Cette section est obligatoire pour permettre à l'utilisateur d'afficher les journaux de réplication.

{ "Effect": "Allow", "Action": [ "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:FilterLogEvents", "logs:GetLogEvents" ], "Resource": "arn:aws:service:region:account:resourcetype/id" }

La AWS DMS console crée plusieurs rôles qui sont automatiquement associés à votre AWS compte lorsque vous utilisez la AWS DMS console. Si vous utilisez le AWS Command Line Interface (AWS CLI) ou le AWS DMS API pour votre migration, vous devez ajouter ces rôles à votre compte. Pour plus d'informations sur l'ajout de ces rôles, consultez Création des IAM rôles à utiliser avec AWS CLI et AWS DMS API.

Pour plus d'informations sur les conditions requises pour utiliser cette politique d'accès AWS DMS, consultezIAMautorisations nécessaires pour utiliser AWS DMS.

Autorisation accordée aux utilisateurs pour afficher leurs propres autorisations

Cet exemple montre comment créer une politique qui permet aux IAM utilisateurs de consulter les politiques intégrées et gérées associées à leur identité d'utilisateur. Cette politique inclut les autorisations permettant d'effectuer cette action sur la console ou par programmation à l'aide du AWS CLI ou. AWS API

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

Accès à un compartiment Amazon S3

AWS DMSutilise des compartiments Amazon S3 comme stockage intermédiaire pour la migration des bases de données. AWS DMSGère généralement les compartiments S3 par défaut à cette fin. Toutefois, dans certains cas, en particulier lorsque vous utilisez le AWS CLI ou le AWS DMSAPI, vous AWS DMS permet de spécifier votre propre compartiment S3 à la place. Par exemple, vous pouvez spécifier votre propre compartiment S3 pour la migration de données vers un point de terminaison cible Amazon Redshift. Dans ce cas, vous devez créer un rôle avec des autorisations basées sur la AmazonDMSRedshiftS3Role politique AWS gérée.

L’exemple suivant présente une version de la politique AmazonDMSRedshiftS3Role. Il permet d'accorder AWS DMS à un IAM utilisateur de votre AWS compte l'accès à l'un de vos compartiments Amazon S3. Il permet également à l'utilisateur d'ajouter, de mettre à jour et de supprimer des objets.

En plus de l'octroi des autorisations s3:PutObject, s3:GetObject et s3:DeleteObject à l'utilisateur, la stratégie octroie aussi les autorisations s3:ListAllMyBuckets, s3:GetBucketLocation et s3:ListBucket. Ces conditions supplémentaires sont requises par la console. D'autres autorisations permettent AWS DMS de gérer le cycle de vie du bucket. En outre, l'action s3:GetObjectAcl est nécessaire pour pouvoir copier des objets.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:CreateBucket", "s3:ListBucket", "s3:DeleteBucket", "s3:GetBucketLocation", "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:GetObjectVersion", "s3:GetBucketPolicy", "s3:PutBucketPolicy", "s3:GetBucketAcl", "s3:PutBucketVersioning", "s3:GetBucketVersioning", "s3:PutLifecycleConfiguration", "s3:GetLifecycleConfiguration", "s3:DeleteBucketPolicy" ], "Resource": "arn:aws:s3:::dms-*" } ] }

Pour plus d'informations sur la création d'un rôle basé sur cette stratégie, consultez Paramètres du compartiment Amazon S3.

Accès aux ressources AWS DMS en fonction des balises

Vous pouvez utiliser des conditions dans votre politique basée sur l’identité pour contrôler l’accès aux ressources AWS DMS en fonction des balises. Cet exemple montre comment créer une politique qui autorise l'accès à tous les AWS DMS points de terminaison. Toutefois, l'autorisation est accordée uniquement si la balise Owner contient le nom d'utilisateur approprié.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "dms:*", "Resource": "arn:aws:dms:*:*:endpoint/*", "Condition": { "StringEquals": {"dms:endpoint-tag/Owner": "${aws:username}"} } } ] }

Vous pouvez associer cette politique aux IAM utilisateurs de votre compte. Si un utilisateur nommé richard-roe tente d'accéder à un AWS DMS point de terminaison, la base de données de points de terminaison doit être Owner=richard-roe étiquetée ouowner=richard-roe. Dans le cas contraire, l’utilisateur se voit refuser l'accès. La clé de condition d'étiquette Owner correspond à la fois à Owner et à owner, car les noms de clé de condition ne sont pas sensibles à la casse. Pour plus d'informations, voir Éléments IAM JSON de politique : Condition dans le guide de IAM l'utilisateur.