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.
Configuration de SQL Server
Effectuez ces étapes dans votre environnement SQL Server pour permettre la modernisation de AWS Transform.
Installation et configuration de la base de données
Étape 1 : créer un utilisateur de base de données avec les autorisations requises
Créez un utilisateur de base de données dédié pour AWS Transform avec les autorisations nécessaires. Si vous avez déjà un utilisateur de conversion de schéma DMS, vous pouvez le réutiliser.
Connectez-vous à votre instance SQL Server et exécutez les commandes suivantes :
-- Create the login in master database USE master; CREATE LOGIN [atx_user] WITH PASSWORD = 'YourStrongPassword123!'; -- Switch to your application database USE [YourDatabaseName]; CREATE USER [atx_user] FOR LOGIN [atx_user]; -- Grant required permissions GRANT VIEW DEFINITION TO [atx_user]; GRANT VIEW DATABASE STATE TO [atx_user]; ALTER ROLE [db_datareader] ADD MEMBER [atx_user]; -- Grant master database permissions USE master; GRANT VIEW SERVER STATE TO [atx_user]; GRANT VIEW ANY DEFINITION TO [atx_user];
Note
Répétez les commandes spécifiques à la base de données (USE, CREATE USER, GRANT) pour chaque base de données que vous souhaitez moderniser.
Le rôle db_datareader n'est nécessaire que pour la migration des données, pas uniquement pour la conversion de schéma.
Le rôle db_datareader accorde un accès en lecture à toutes les tables de la base de données
Ce rôle est requis UNIQUEMENT lors de la migration des données.
Pour la conversion de schéma uniquement (sans migration de données), le rôle db_datareader n'est PAS requis
Les autres autorisations (VIEW DEFINITION, VIEW DATABASE STATE, etc.) sont suffisantes pour la conversion du schéma
Étape 2 : Stocker les informations d'identification dans AWS Secrets Manager
Stockez les informations d'identification de votre base de données en toute sécurité dans AWS Secrets Manager. Ignorez cette étape si vous avez déjà créé un secret pour DMS.
Accédez à AWS Secrets Manager dans la console
Choisissez Stocker un nouveau secret
Configurez le secret :
Type de secret : informations d'identification pour une autre base de données
Base de données : Microsoft SQL Server
Nom d'utilisateur : atx_user (ou le nom d'utilisateur que vous avez choisi)
Mot de passe : le mot de passe que vous avez créé
Nom du serveur : votre point de terminaison SQL Server
Nom de la base de données : nom de votre base de données
Port : 1433 (ou votre port personnalisé)
Choisissez Next (Suivant)
Entrez le nom secret : atx-db-modernization-sqlserver
Ajoutez les balises requises (ces balises sont obligatoires) :
Clé : projet, valeur : atx-db-modernization
Clé : propriétaire, valeur : connecteur de base de données
Choisissez Next dans les écrans restants
Choisissez un magasin
Notez l'ARN secret à utiliser à l'étape suivante
Important
Les mots de passe de base de données doivent utiliser uniquement des caractères ASCII imprimables, à l'exception des caractères «/», « @ », «" » et des espaces. Les secrets dont la suppression est planifiée peuvent provoquer des échecs de transformation.
Étape 3 : Création des rôles DMS requis
AWS Transform nécessite des rôles IAM spécifiques pour les opérations DMS. Déployez ces rôles à l'aide du CloudFormation modèle ci-dessous.
Note
Si des DMS-related rôles existent déjà dans votre AWS compte, modifiez ce modèle pour réutiliser ces ressources plutôt que de créer des doublons.
Créez un fichier nommé dms-roles.yaml avec le contenu suivant :
AWSTemplateFormatVersion: '2010-09-09' Description: 'DMS Service Roles for AWS Transform SQL Server Modernization' Resources: DMSCloudWatchLogsRole: Type: AWS::IAM::Role Properties: RoleName: dms-cloudwatch-logs-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AmazonDMSCloudWatchLogsRole DMSS3AccessRole: Type: AWS::IAM::Role Properties: RoleName: dms-s3-access-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: S3TaggedAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - s3:GetBucketLocation - s3:GetBucketVersioning - s3:PutObject - s3:PutBucketVersioning - s3:GetObject - s3:GetObjectVersion - s3:ListBucket - s3:DeleteObject Resource: arn:aws:s3:::atx-db-modernization-* Condition: StringEquals: aws:ResourceAccount: !Ref AWS::AccountId DMSSecretsManagerRole: Type: AWS::IAM::Role Properties: RoleName: dms-secrets-manager-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole Policies: - PolicyName: SecretsManagerTaggedAccess PolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Action: - secretsmanager:GetSecretValue - secretsmanager:DescribeSecret Resource: '*' Condition: StringEquals: secretsmanager:ResourceTag/Project: atx-db-modernization secretsmanager:ResourceTag/Owner: database-connector DMSVPCRole: Type: AWS::IAM::Role Properties: RoleName: dms-vpc-role AssumeRolePolicyDocument: Version: '2012-10-17' Statement: - Effect: Allow Principal: Service: - dms.amazonaws.com - schema-conversion.dms.amazonaws.com Action: sts:AssumeRole ManagedPolicyArns: - arn:aws:iam::aws:policy/service-role/AmazonDMSVPCManagementRole DMSServerlessRole: Type: AWS::IAM::ServiceLinkedRole Properties: AWSServiceName: dms.amazonaws.com Description: 'Service Linked Role for AWS DMS Serverless' Outputs: DMSCloudWatchLogsRoleArn: Description: ARN of the DMS CloudWatch Logs Role Value: !GetAtt DMSCloudWatchLogsRole.Arn DMSS3AccessRoleArn: Description: ARN of the DMS S3 Access Role Value: !GetAtt DMSS3AccessRole.Arn DMSSecretsManagerRoleArn: Description: ARN of the DMS Secrets Manager Role Value: !GetAtt DMSSecretsManagerRole.Arn DMSVPCRoleArn: Description: ARN of the DMS VPC Role Value: !GetAtt DMSVPCRole.Arn Export: Name: !Sub ${AWS::StackName}-VPCRole DMSServerlessRoleArn: Description: ARN of the DMS Serverless Role Value: !Sub 'arn:aws:iam::${AWS::AccountId}:role/aws-service-role/dms.amazonaws.com/AWSServiceRoleForDMSServerless' Export: Name: !Sub ${AWS::StackName}-ServerlessRole
Déployez la CloudFormation pile à l'aide de la AWS CLI :
aws cloudformation create-stack \ --stack-name dms-roles \ --template-body file://dms-roles.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-east-1
Ou déployez à l'aide de la AWS console :
Accédez à CloudFormation dans la AWS console
Choisissez Create stack
Sélectionnez Télécharger un fichier modèle
Téléchargez le fichier dms-roles.yaml
Entrez le nom de la pile : dms-roles
Reconnaître les capacités IAM
Choisissez Create stack
Étape 4 : Configuration de la sécurité du réseau
Garantissez une connectivité réseau adéquate entre AWS Transform, votre base de données SQL Server et les autres AWS services.
Configuration du groupe de sécurité (approche recommandée)
Approche recommandée : utilisez un contrôle d'accès basé sur les groupes de sécurité plutôt que IP-based des règles. Cela améliore la sécurité, facilite la gestion et fonctionne parfaitement avec l'architecture de AWS Transform.
Pourquoi choisir le contrôle Group-Based d'accès sécurisé ?
La conversion du schéma DMS crée des interfaces réseau élastiques (ENI) au sein de votre VPC
Vos bases de données n'ont pas besoin d'être accessibles au public
AWS Transform n'expose pas les adresses IP privées, ce qui IP-based complique les règles
Les références aux groupes de sécurité fournissent des mises à jour dynamiques et automatiques à mesure que les ressources augmentent
Configuration de votre groupe de sécurité SQL Server
Lorsque vous configurez le profil d'instance de conversion du schéma DMS dans AWS Transform, vous spécifiez un groupe de sécurité pour l'instance DMS SC. Le groupe de sécurité de votre base de données doit autoriser le trafic entrant en provenance de ce groupe de sécurité DMS SC.
Step-by-step configuration :
Identifiez le groupe de sécurité de conversion du schéma DMS :
Ceci est spécifié lors de la création du profil d'instance dans AWS Transform
Notez l'ID du groupe de sécurité (par exemple, sg-0123456789abcdef0)
Mettez à jour les règles entrantes de votre groupe de sécurité SQL Server :
Type : TCP personnalisé
Port : 1433 (ou votre port SQL Server personnalisé)
Source : ID du groupe de sécurité pour la conversion du schéma DMS
Description : « Autoriser l'accès à la conversion du schéma DMS »
Pour la cible Aurora PostgreSQL (après création) :
Type : PostgreSQL
Port : 5432 (ou votre port PostgreSQL personnalisé)
Source : ID du groupe de sécurité pour la conversion du schéma DMS
Description : « Autoriser l'accès à la conversion du schéma DMS »
Important
Important pour les modèles de sécurité les moins privilégiés : si votre organisation utilise un modèle de sécurité « moins privilégié » qui bloque tout le trafic par défaut, vous devez explicitement autoriser le trafic entrant depuis le groupe de sécurité de conversion du schéma DMS vers votre port de base de données. N'ouvrez pas le port 1433 à toutes les sources ou plages d'adresses IP.
Obligatoire AWS connectivité du service
Assurez-vous que votre VPC peut communiquer avec :
AWS Transformez les points de terminaison des services
AWS DMS points de terminaison
Points de terminaison Aurora PostgreSQL
Points de terminaison S3 pour le stockage d'artefacts
AWS Secrets Manager points de terminaison
AWS CodeConnections points de terminaison
Points de terminaison VPC : pour les réseaux privés, configurez les points de terminaison VPC pour les AWS services requis afin d'éviter les dépendances liées aux passerelles Internet.
Exigences relatives aux bases de données hébergées en externe
Si votre base de données SQL Server est hébergée en dehors de AWS, assurez-vous que les conditions préalables suivantes sont remplies, puis effectuez les étapes de configuration avant de commencer la modernisation.
Conditions préalables
-
Un AWS compte avec un VPC
-
Connectivité réseau entre le VPC et la base de données externe. Pour plus d'informations sur la configuration de la connectivité réseau, voir Configuration de la connectivité réseau dans le Guide de AWS DMS l'utilisateur.
Étapes de configuration
-
Créez un secret AWS Secrets Manager contenant les détails de connexion à la base de données externe. Pour de plus amples informations, veuillez consulter Étape 2 : Stocker les informations d'identification dans AWS Secrets Manager.
-
Lorsque vous y êtes invité, fournissez l'ID VPC et l'ID du groupe de sécurité pour la connexion à la base de données externe. AWS Transform vous demande ces informations car le nom d'hôte de la base de données indiqué dans le secret ne peut pas être résolu dans le AWS compte.