View a markdown version of this page

Configuration de SQL Server - AWS Transformation

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.

  1. Accédez à AWS Secrets Manager dans la console

  2. Choisissez Stocker un nouveau secret

  3. 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é)

  4. Choisissez Next (Suivant)

  5. Entrez le nom secret : atx-db-modernization-sqlserver

  6. Ajoutez les balises requises (ces balises sont obligatoires) :

    • Clé : projet, valeur : atx-db-modernization

    • Clé : propriétaire, valeur : connecteur de base de données

  7. Choisissez Next dans les écrans restants

  8. Choisissez un magasin

  9. 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 :

  1. Accédez à CloudFormation dans la AWS console

  2. Choisissez Create stack

  3. Sélectionnez Télécharger un fichier modèle

  4. Téléchargez le fichier dms-roles.yaml

  5. Entrez le nom de la pile : dms-roles

  6. Reconnaître les capacités IAM

  7. 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 :

  1. 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)

  2. 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 »

  3. 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

  1. 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.

  2. 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.