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 do 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 de conversão de esquema DMS, 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 apenas 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 AWS Secrets Manager. Pule esta etapa se você já tiver um segredo criado para o DMS.

  1. Navegue até o 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: o nome do seu banco de dados

    • Porta: 1433 (ou sua porta personalizada)

  4. Escolha Próximo.

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

  6. Adicione as tags obrigató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 agendados para exclusão podem causar falhas de transformação.

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

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 do esquema 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 A transformação 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 aumentam

Configurar 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

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

  2. Atualize suas regras de entrada do SQL Server Security Group:

    • Tipo: TCP personalizado

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

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

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

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

    • Tipo: PostgreSQL

    • Porta: 5432 (ou sua porta PostgreSQL personalizada)

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

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

Importante

Importante para modelos de segurança com menos privilégios: 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 do 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 pontos finais

  • Endpoints do Aurora PostgreSQL

  • Endpoints S3 para armazenamento de artefatos

  • AWS Secrets Manager pontos finais

  • AWS CodeConnections pontos finais

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

Requisitos para bancos de dados hospedados externamente

Se o banco de dados do SQL Server estiver hospedado fora do AWS, verifique se os seguintes pré-requisitos foram atendidos e conclua as etapas de configuração antes de começar 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 para o banco de dados externo. Para obter mais informações, consulte Etapa 2: armazenar credenciais em AWS Secrets Manager .

  2. Quando solicitado, forneça a ID da VPC e a 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.