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.
Vai a AWS Secrets Manager nella console
Scegli Memorizza un nuovo segreto
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)
Seleziona Next (Successivo).
Inserisci il nome segreto: atx-db-modernization-sqlserver
Aggiungi i tag richiesti (questi tag sono obbligatori):
Chiave: progetto, valore: atx-db-modernization
Chiave: proprietario, valore: database-connector
Scegli Avanti nelle schermate rimanenti
Scegli Store
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
Passa a CloudFormation nella console AWS
Scegli Crea pila
Seleziona Carica un file modello
Carica il file dms-roles.yaml
Inserisci il nome dello stack: dms-roles
Riconosci le funzionalità IAM
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:
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)
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»
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
-
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.
-
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