View a markdown version of this page

Configuração do SQL Server - AWS Transformação

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Configuração do SQL Server

Execute essas etapas em seu ambiente SQL Server para permitir a modernização do AWS Transform.

Instalação e configuração do banco de dados

Etapa 1: Criar usuário de banco de dados com as permissões necessárias

Crie um usuário de banco de dados dedicado para o AWS Transform com as permissões necessárias. Se você já tiver um usuário do DMS Schema Conversion, poderá reutilizá-lo.

Conecte-se à sua instância do SQL Server e execute os seguintes comandos:

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

Repita os comandos específicos do banco de dados (USE, CREATE USER, GRANT) para cada banco de dados que você deseja modernizar.

A função db_datareader só é necessária para a migração de dados, não somente para a conversão de esquemas.

  • A função db_datareader concede acesso de leitura a todas as tabelas no banco de dados

  • Essa função é necessária SOMENTE ao realizar a migração de dados.

  • Somente para conversão de esquema (sem migração de dados), a função db_datareader NÃO é necessária

  • As outras permissões (VIEW DEFINITION, VIEW DATABASE STATE etc.) são suficientes para a conversão do esquema

Etapa 2: armazenar credenciais em AWS Secrets Manager 

Armazene suas credenciais de banco de dados com segurança no Secrets Manager AWS . Ignore esta etapa se você já tiver um segredo criado para o DMS.

  1. Navegue até AWS Secrets Manager no console

  2. Escolha Armazenar um novo segredo

  3. Configure o segredo:

    • Tipo secreto: Credenciais para outro banco de dados

    • Banco de dados: Microsoft SQL Server

    • Nome de usuário: atx_user (ou seu nome de usuário escolhido)

    • Senha: A senha que você criou

    • Nome do servidor: Seu endpoint do SQL Server

    • Nome do banco de dados: nome do seu banco de dados

    • Porta: 1433 (ou sua porta personalizada)

  4. Escolha Próximo.

  5. Insira o nome secreto: atx-db-modernization-sqlserver

  6. Adicione as tags necessárias (essas tags são obrigatórias):

    • Chave: Projeto, Valor: atx-db-modernization

    • Chave: proprietário, valor: conector de banco de dados

  7. Escolha Avançar nas telas restantes

  8. Escolha a loja

  9. Anote o ARN secreto para uso na próxima etapa

Importante

As senhas do banco de dados devem usar somente caracteres ASCII imprimíveis, excluindo '/', '@', '"' e espaços. Segredos programados para exclusão podem causar falhas na transformação.

Etapa 3: criar as funções necessárias do DMS

AWS A transformação exige funções específicas do IAM para operações do DMS. Implante essas funções usando o CloudFormation modelo abaixo.

nota

Se sua AWS conta já tiver DMS-related funções existentes, modifique esse modelo para reutilizar esses recursos em vez de criar duplicatas.

Crie um arquivo chamado dms-roles.yaml com o seguinte conteúdo:

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

Implante a CloudFormation pilha usando a 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 implante usando o AWS console:

  1. Navegue até CloudFormation no AWS console

  2. Escolha Criar pilha

  3. Selecione Carregar um arquivo de modelo

  4. Faça upload do arquivo dms-roles.yaml

  5. Insira o nome da pilha: dms-roles

  6. Reconheça os recursos do IAM

  7. Escolha Criar pilha

Etapa 4: Configurar a segurança da rede

Garanta a conectividade de rede adequada entre o AWS Transform, seu banco de dados do SQL Server e outros AWS serviços.

Configuração do grupo de segurança (abordagem recomendada)

Abordagem recomendada: use controle de acesso baseado em grupos de segurança em vez IP-based de regras. Isso fornece melhor segurança, gerenciamento mais fácil e funciona perfeitamente com a arquitetura do AWS Transform.

Por que controle de Group-Based acesso de segurança?

  • A conversão de esquema do DMS cria interfaces de rede elásticas (ENIs) em sua VPC

  • Seus bancos de dados não precisam estar acessíveis ao público

  • AWS O Transform não expõe endereços IP privados, tornando IP-based as regras complexas

  • As referências de grupos de segurança fornecem atualizações dinâmicas e automáticas à medida que os recursos se expandem

Configure seu grupo de segurança do SQL Server

Ao configurar o Perfil da Instância de Conversão do Esquema DMS no AWS Transform, você especifica um Grupo de Segurança para a instância do DMS SC. Seu grupo de segurança de banco de dados deve permitir tráfego de entrada desse grupo de segurança do DMS SC.

Step-by-step configuração:

  1. Identifique o grupo de segurança de conversão do esquema DMS:

    • Isso é especificado ao criar o Perfil de Instância no AWS Transform

    • Anote o ID do grupo de segurança (por exemplo, sg-0123456789abcdef0)

  2. Atualize suas regras de entrada do Grupo de Segurança do SQL Server:

    • Tipo: TCP personalizado

    • Porta: 1433 (ou sua porta personalizada do SQL Server)

    • Fonte: O ID do grupo de segurança de conversão do esquema DMS

    • Descrição: “Permitir acesso à conversão do esquema DMS”

  3. Para o destino do Aurora PostgreSQL (após a criação):

    • Tipo: PostgreSQL

    • Porta: 5432 (ou sua porta personalizada do PostgreSQL)

    • Fonte: O ID do grupo de segurança de conversão do esquema DMS

    • Descrição: “Permitir acesso à conversão do esquema DMS”

Importante

Importante para modelos de segurança menos privilegiados: Se sua organização usa um modelo de segurança “menos privilegiado” que bloqueia todo o tráfego por padrão, você deve permitir explicitamente o tráfego de entrada do Grupo de Segurança de Conversão de Esquema DMS para a porta do seu banco de dados. Não abra a porta 1433 para todas as fontes ou intervalos de IP.

Obrigatório AWS conectividade de serviço

Garanta que sua VPC possa se comunicar com:

  • AWS Transforme os endpoints de serviço

  • AWS DMS endpoints

  • Endpoints Aurora PostgreSQL

  • Endpoints S3 para armazenamento de artefatos

  • AWS Secrets Manager endpoints

  • AWS CodeConnections endpoints

VPC Endpoints: para redes privadas, configure os VPC endpoints para os AWS serviços necessários para evitar dependências de gateway de internet.

Requisitos para bancos de dados hospedados externamente

Se o banco de dados do SQL Server estiver hospedado fora do AWS, verifique se os pré-requisitos a seguir foram atendidos e, em seguida, conclua as etapas de configuração antes de iniciar a modernização.

Pré-requisitos

  • Uma AWS conta com uma VPC

  • Conectividade de rede entre a VPC e o banco de dados externo. Para obter informações sobre como configurar a conectividade de rede, consulte Configurando a conectividade de rede no Guia do AWS DMS usuário.

Etapas de configuração

  1. Crie um segredo AWS Secrets Manager com os detalhes da conexão do banco de dados externo. Para obter mais informações, consulte Etapa 2: armazenar credenciais em AWS Secrets Manager .

  2. Quando solicitado, forneça o ID da VPC e o ID do grupo de segurança para se conectar ao banco de dados externo. AWS O Transform solicita essas informações porque o nome do host do banco de dados no segredo não pode ser resolvido na AWS conta.