View a markdown version of this page

Configurazione di SQL Server - AWS Trasformazione

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Configurazione di SQL Server

Esegui questi passaggi nel tuo ambiente SQL Server per abilitare la modernizzazione di AWS Transform.

Configurazione e configurazione del database

Passaggio 1: creare un utente del database con le autorizzazioni richieste

Crea un utente di database dedicato per AWS Transform con le autorizzazioni necessarie. Se hai già un utente DMS Schema Conversion, puoi riutilizzarlo.

Connect all'istanza di SQL Server ed esegui i seguenti comandi:

-- 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];
Nota

Ripeti i comandi specifici del database (USE, CREATE USER, GRANT) per ogni database che desideri modernizzare.

Il ruolo db_datareader è necessario solo per la migrazione dei dati, non solo per la conversione dello schema.

  • Il ruolo db_datareader garantisce l'accesso in lettura a tutte le tabelle del database

  • Questo ruolo è richiesto SOLO quando si esegue la migrazione dei dati.

  • Solo per la conversione dello schema (senza migrazione dei dati), il ruolo db_datareader NON è richiesto

  • Le altre autorizzazioni (VIEW DEFINITION, VIEW DATABASE STATE, ecc.) sono sufficienti per la conversione dello schema

Passaggio 2: Archivia le credenziali in AWS Secrets Manager

Archivia le credenziali del database in modo sicuro in AWS Secrets Manager. Salta questo passaggio se hai già creato un segreto per DMS.

  1. Vai a AWS Secrets Manager nella console

  2. Scegli Memorizza un nuovo segreto

  3. Configura il segreto:

    • Tipo segreto: credenziali per un altro database

    • Banca dati: Microsoft SQL Server

    • Nome utente: atx_user (o nome utente scelto)

    • Password: la password che hai creato

    • Nome del server: l'endpoint SQL Server

    • Nome del database: il nome del tuo database

    • Porta: 1433 (o porta personalizzata)

  4. Seleziona Next (Successivo).

  5. Inserisci il nome segreto: atx-db-modernization-sqlserver

  6. Aggiungi i tag richiesti (questi tag sono obbligatori):

    • Chiave: progetto, valore: atx-db-modernization

    • Chiave: proprietario, valore: database-connector

  7. Scegli Avanti nelle schermate rimanenti

  8. Scegli Store

  9. Nota l'ARN segreto da utilizzare nel passaggio successivo

Importante

Le password del database devono utilizzare solo caratteri ASCII stampabili, esclusi '/', '@', '"' e gli spazi. I segreti programmati per l'eliminazione possono causare errori di trasformazione.

Fase 3: Creare i ruoli DMS richiesti

AWS Transform richiede ruoli IAM specifici per le operazioni DMS. Implementa questi ruoli utilizzando il CloudFormation modello seguente.

Nota

Se il tuo AWS account ha già DMS-related ruoli esistenti, modifica questo modello per riutilizzare tali risorse anziché creare duplicati.

Crea un file denominato dms-roles.yaml con il seguente contenuto:

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

Implementa lo CloudFormation stack utilizzando la CLI: AWS

aws cloudformation create-stack \ --stack-name dms-roles \ --template-body file://dms-roles.yaml \ --capabilities CAPABILITY_NAMED_IAM \ --region us-east-1

Oppure esegui la distribuzione utilizzando la console: AWS

  1. Passa a CloudFormation nella console AWS

  2. Scegli Crea pila

  3. Seleziona Carica un file modello

  4. Carica il file dms-roles.yaml

  5. Inserisci il nome dello stack: dms-roles

  6. Riconosci le funzionalità IAM

  7. Scegli Create stack

Fase 4: Configurazione della sicurezza di rete

Garantisci la corretta connettività di rete tra AWS Transform, il database SQL Server e altri AWS servizi.

Configurazione del gruppo di sicurezza (approccio consigliato)

Approccio consigliato: utilizza il controllo degli accessi basato sui gruppi di sicurezza anziché sulle IP-based regole. Ciò offre una maggiore sicurezza, una gestione più semplice e si integra perfettamente con l'architettura di AWS Transform.

Perché Security Group-Based Access Control?

  • La conversione dello schema DMS crea interfacce di rete elastiche (ENI) all'interno del tuo VPC

  • Non è necessario che i database siano accessibili al pubblico

  • AWS Transform non espone indirizzi IP privati, il che rende IP-based le regole complesse

  • I riferimenti ai gruppi di sicurezza forniscono aggiornamenti dinamici e automatici man mano che le risorse scalano

Configura il tuo gruppo di sicurezza di SQL Server

Quando si configura il profilo dell'istanza di conversione dello schema DMS in AWS Transform, si specifica un gruppo di sicurezza per l'istanza DMS SC. Il gruppo di sicurezza del database deve consentire il traffico in entrata da questo gruppo di sicurezza DMS SC.

Step-by-step configurazione:

  1. Identifica il gruppo di sicurezza DMS Schema Conversion:

    • Questo viene specificato durante la creazione del profilo di istanza in Transform AWS

    • Nota l'ID del gruppo di sicurezza (ad esempio, sg-0123456789abcdef0)

  2. Aggiorna le regole in entrata del tuo SQL Server Security Group:

    • Tipo: TCP personalizzato

    • Porta: 1433 (o la porta SQL Server personalizzata)

    • Fonte: ID del gruppo di sicurezza di DMS Schema Conversion

    • Descrizione: «Consenti l'accesso alla conversione dello schema DMS»

  3. Per il target Aurora PostgreSQL (dopo la creazione):

    • Tipo: PostgreSQL

    • Porta: 5432 (o la tua porta PostgreSQL personalizzata)

    • Fonte: ID del gruppo di sicurezza di DMS Schema Conversion

    • Descrizione: «Consenti l'accesso alla conversione dello schema DMS»

Importante

Importante per i modelli di sicurezza con privilegi minimi: se l'organizzazione utilizza un modello di sicurezza «meno privilegiato» che blocca tutto il traffico per impostazione predefinita, è necessario consentire esplicitamente il traffico in entrata dal DMS Schema Conversion Security Group alla porta del database. Non aprire la porta 1433 a tutte le sorgenti o intervalli IP.

Richiesto AWS connettività servizio

Assicurati che il tuo VPC possa comunicare con:

  • AWS Trasforma gli endpoint del servizio

  • AWS DMS endpoint

  • Endpoint Aurora PostgreSQL

  • Endpoint S3 per lo storage di artefatti

  • AWS Secrets Manager endpoint

  • AWS CodeConnections punti finali

Endpoint VPC: per le reti private, configura gli endpoint VPC per i AWS servizi richiesti per evitare le dipendenze dei gateway Internet.

Requisiti per i database ospitati esternamente

Se il database SQL Server è ospitato all'esterno AWS, assicurati che siano soddisfatti i seguenti prerequisiti, quindi completa i passaggi di configurazione prima di iniziare la modernizzazione.

Prerequisiti

  • Un AWS account con un VPC

  • Connettività di rete tra il VPC e il database esterno. Per informazioni sulla configurazione della connettività di rete, vedere Configurazione della connettività di rete nella Guida per l' AWS DMS utente.

Fasi di configurazione

  1. Crea un accesso segreto AWS Secrets Manager con i dettagli di connessione per il database esterno. Per ulteriori informazioni, consulta Passaggio 2: Archivia le credenziali in AWS Secrets Manager.

  2. Quando richiesto, fornisci l'ID VPC e l'ID del gruppo di sicurezza per la connessione al database esterno. AWS Transform richiede queste informazioni perché il nome host del database nel segreto non può essere risolto all'interno dell'account. AWS