Visão geral de segurança (Integration Services)

Aplica-se a:SQL Server SSIS Integration Runtime no Azure Data Factory

A segurança do SQL Server Integration Services consiste em várias camadas que fornecem um ambiente de segurança avançado e flexível. Estas camadas de segurança incluem o uso de assinaturas digitais, propriedades de pacote, funções de banco de dados do SQL Server e permissões do sistema operacional. A maioria desses recursos de segurança se enquadram nas categorias de identidade e controle de acesso.

Redução de ameaças e vulnerabilidades

Embora o Integration Services inclua diversos mecanismos de segurança, os pacotes e os arquivos criados ou utilizados por pacotes podem ser explorados com más intenções.

A tabela a seguir descreve esses riscos e as etapas proativas que você pode executar para diminuí-los.

Ameaça ou vulnerabilidade Definição Atenuação
Origem do pacote A origem de um pacote é a pessoa ou organização que criou o pacote. Pode ser arriscado executar um pacote de origem desconhecida ou não confiável. Identifique a origem do pacote usando uma assinatura digital e apenas execute pacotes provenientes de fontes conhecidas e confiáveis. Para obter mais informações, consulte Identificar a origem de pacotes com assinaturas digitais.
Conteúdo do pacote O conteúdo de um pacote inclui os elementos do pacote e suas propriedades. As propriedades podem conter dados confidenciais, como uma senha ou uma cadeia de conexão. Elementos de pacote como uma instrução SQL podem revelar a estrutura de seu banco de dados. Para controlar o acesso a um pacote e ao seu conteúdo, execute as seguintes etapas:

1) Para controlar o acesso ao pacote propriamente dito, aplique recursos de segurança do SQL Server aos pacotes salvos no banco de dados msdb em uma instância do SQL Server. Aos pacotes salvos no sistema de arquivos, aplique os recursos de segurança do sistema de arquivos, como ACLs (listas de controle de acesso).

2) Para controlar o acesso aos conteúdos do pacote, defina o nível de proteção do pacote.

Para saber mais, confira Visão Geral de Segurança (Integration Services) e Controle de Acesso para Dados Confidenciais em Pacotes.
Saída do pacote Quando você configura um pacote para usar configurações, pontos de verificação e log, o pacote armazena essas informações fora dele. As informações armazenadas fora do pacote pode conter dados confidenciais. Para proteger as configurações e os logs que o pacote salva em tabelas de banco de dados do SQL Server , use os recursos de segurança do SQL Server .

Para controlar o acesso a arquivos, use as ACLs disponíveis no sistema de arquivos.

Para obter mais informações, consulte Acesso aos arquivos usados por pacotes

Recursos de identidade

Ao implementar recursos de identidade em seus pacotes, você pode alcançar o seguinte objetivo:

Você só deve abrir e executar pacotes de fontes confiáveis.

Para assegurar que você só abra e execute pacotes de fontes confiáveis, primeiro identifique a fonte dos pacotes. Você pode identificar a fonte assinando pacotes com certificados. Em seguida, quando você abrir ou executar os pacotes, poderá fazer com que o Integration Services verifique a presença e a validade das assinaturas digitais. Para obter mais informações, consulte Identificar a origem de pacotes com assinaturas digitais.

Recursos de controle de acesso

Ao implementar recursos de identidade em seus pacotes, você pode alcançar o seguinte objetivo:

Apenas usuários autorizados devem abrir e executar pacotes.

Para assegurar que apenas usuários autorizados abram e executam pacotes, você deve controlar o acesso às seguintes informações:

  • Controle acesso ao conteúdo dos pacotes, principalmente dados confidenciais.

  • Controle o acesso aos pacotes e configurações de pacotes armazenadas no SQL Server.

  • Controle o acesso aos pacotes e arquivos relacionados, como configurações, logs e arquivos de ponto de verificação armazenados no sistema de arquivos.

  • Controle o acesso ao serviço Integration Services e às informações sobre pacotes que o serviço exibe no SQL Server Management Studio.

Controlando o acesso ao conteúdo dos pacotes

Para ajudar a restringir o acesso ao conteúdo de um pacote, você pode criptografar pacotes definindo a propriedade ProtectionLevel do pacote. Você pode definir essa propriedade como o nível de proteção necessário para o seu pacote. Por exemplo, em um ambiente de desenvolvimento de equipe, você pode criptografar um pacote usando uma senha conhecida apenas pelos membros da equipe que trabalham no pacote.

Quando você define a propriedade ProtectionLevel de um pacote, o Integration Services detecta automaticamente as propriedades confidenciais e trata essas propriedades de acordo com o nível de proteção do pacote especificado. Por exemplo, defina a propriedade ProtectionLevel de um pacote como um nível que criptografa informações confidenciais com uma senha. Para esse pacote, o Integration Services criptografa automaticamente os valores de todas as propriedades confidenciais e não exibirá os dados correspondentes sem o fornecimento da senha correta.

Geralmente, o Integration Services identificará as propriedades como confidenciais se elas contiverem informações, como uma senha ou uma cadeia de conexão, ou se essas propriedades corresponderem às variáveis ou aos nós XML gerados por tarefa. Se o Integration Services considera uma propriedade como confidencial, dependerá do desenvolvedor do componente Integration Services , como um gerenciador de conexão ou tarefa, ter designado a propriedade como confidencial. Os usuários não podem adicionar nem remover propriedades da lista de propriedades consideradas confidenciais. Se você escrever tarefas personalizadas, gerenciadores de conexão ou componentes de fluxo de dados, poderá especificar quais propriedades o Integration Services deverá tratar como confidenciais.

Para obter mais informações, consulte Access Control for Sensitive Data in Packages.

Controlando o acesso aos pacotes

Você pode salvar pacotes do Integration Services no banco de dados msdb em uma instância do SQL Serverou no sistema de arquivos como arquivos XML que têm a extensão de nome de arquivo .dtsx. Para obter mais informações, consulte Salvar pacotes.

Salvando pacotes no banco de dados msdb

Salvar os pacotes no banco de dados msdb ajuda a fornecer segurança nos níveis de servidor, banco de dados e tabela. No banco de dados msdb, os pacotes do Integration Services são armazenados na tabela sysssispackages. Como os pacotes são salvos nas tabelas sysssispackages e sysdtspackages no banco de dados msdb, os pacotes são incluídos no backup automaticamente quando você faz backup do banco de dados msdb.

SQL Server Os pacotes armazenados no banco de dados msdb também podem ser protegidos com a aplicação das funções no nível de banco de dados do Integration Services . Integration Services inclui três funções fixas em nível do banco de dados, db_ssisadmin, db_ssisltduser e db_ssisoperator, para controlar o acesso aos pacotes. Uma função de leitor e gravador pode estar associada a cada pacote. Também é possível definir funções em nível de banco de dados personalizadas para uso em pacotes do Integration Services . As funções podem ser implementadas apenas em pacotes salvos no banco de dados msdb em uma instância do SQL Server. Para saber mais confira Funções do Serviço SSIS (Integration Services).

Salvando pacotes no sistema de arquivos

Se você armazenar pacotes no sistema de arquivos, em vez de no banco de dados msdb, não se esqueça de proteger os arquivos de pacote e as pastas que contêm arquivos de pacote.

Controlando o acesso aos arquivos usados por pacotes

Os pacotes configurados para usar configurações, pontos de verificação e logs geram informações que são armazenadas fora do pacote. Essas informações podem ser confidenciais e devem ser protegidas. Os arquivos de ponto de verificação podem ser salvos apenas no sistema de arquivos, mas as configurações e os logs podem ser salvos no sistema de arquivos ou nas tabelas em um banco de dados do SQL Server . As configurações e os logs que são salvos no SQL Server estão sujeitos à segurança do SQL Server , mas as informações gravadas no sistema de arquivos requerem segurança adicional.

Para obter mais informações, consulte Acesso aos arquivos usados por pacotes.

Armazenando configurações de pacote com segurança

As configurações de pacote podem ser salvas em uma tabela em um banco de dados do SQL Server ou no sistema de arquivos.

As configurações podem ser salvas em qualquer banco de dados do SQL Server , não só no banco de dados msdb. Assim, você pode especificar qual banco de dados atua como o repositório de configurações de pacote. Você também pode especificar o nome da tabela que conterá as configurações e o Integration Services criará a tabela automaticamente com a estrutura correta. Salvar as configurações em uma tabela permite fornecer segurança nos níveis de servidor, banco de dados e tabela. Além disso, as configurações que são salvas no SQL Server são automaticamente incluídas no backup do banco de dados.

Se você não armazenar configurações no sistema de arquivos, em vez de no SQL Server, proteja as pastas no sistema de arquivos que contenham os arquivos de configuração de pacote.

Para obter mais informações sobre configurações, consulte Package Configurations.

Controlando o acesso ao serviço Integration Services

SQL Server Management Studio usa o serviço SQL Server para listar pacotes armazenados. Para impedir que usuários não autorizados exibam informações sobre pacotes armazenados em computadores locais e remotos, e, assim, obtenham informações privadas, restrinja o acesso aos computadores que executam o serviço SQL Server .

Para obter mais informações, consulte Acesso ao serviço Integration Services.

Acesso aos arquivos usados por pacotes

O nível de proteção do pacote não protege arquivos armazenados fora do pacote. Esses arquivos incluem o seguinte:

  • Arquivos de configuração

  • arquivos de ponto de verificação

  • Arquivos de log

Esses arquivos devem ser protegidos separadamente, especialmente se eles incluírem informações confidenciais.

Arquivos de configuração

Se você tiver informações confidenciais em uma configuração, como informações de logon e senha, deverá salvar a configuração no SQL Serverou usar uma ACL (lista de controle de acesso), para restringir acesso ao local ou à pasta na qual você armazena os arquivos e só permitir o acesso a determinadas contas. Normalmente, você concede acesso às contas que você permite que executem pacotes, e às contas que gerenciam e solucionam problemas de pacotes, que podem incluir revisão do conteúdo de configuração, ponto de verificação e arquivos de log. SQL Server fornece o armazenamento mais seguro porque oferece proteção nos níveis de servidor e de banco de dados. Para salvar configurações no SQL Server, use o tipo de configuração do SQL Server . Para salvar no sistema de arquivos, use o tipo de configuração XML.

Para obter mais informações, consulte Configurações de pacote, Criar configurações de pacotee Considerações de segurança para uma instalação do SQL Server.

arquivos de ponto de verificação

Do mesmo modo, se o arquivo de ponto de verificação usado pelo pacote incluir informações confidenciais, você deverá usar uma lista de controle de acesso (ACL) para proteger o local ou a pasta onde armazena o arquivo. Arquivos de ponto de verificação salvam informações do estado atual no andamento do pacote, bem como os valores atuais das variáveis. Por exemplo, o pacote pode incluir uma variável personalizada que contenha um número de telefone. Para saber mais, confira Restart Packages by Using Checkpoints.

Arquivos de log

As entradas de log que são gravadas no sistema de arquivos também devem ser protegidas usando uma lista de controle de acesso (ACL). As entradas de log também podem ser armazenadas em tabelas do SQL Server e protegidas pela segurança do SQL Server . As entradas de logs podem incluir informações confidenciais, por exemplo, se o pacote contiver uma tarefa Executar SQL que cria uma instrução SQL referente a um número de telefone, a entrada de log para a instrução SQL incluirá o número de telefone. A instrução SQL também pode revelar informações particulares sobre nomes de tabelas e colunas nos bancos de dados. Para obter mais informações, consulte Log do SSIS (Integration Services).

Acesso ao serviço Integration Services

Os níveis de proteção do pacote podem limitar quem tem permissão para editar e executar um pacote. É necessário ter proteção adicional para limitar quem pode exibir a lista de pacotes que estão sendo executados em um servidor e quem pode interromper a execução de pacotes no SQL Server Management Studio.

SQL Server Management Studio usa o serviço SQL Server para listar os pacotes em execução. Os membros do grupo Administradores do Windows podem visualizar e parar todos os pacotes em execução. Os usuários que não são membros do grupo Administradores podem visualizar e parar apenas os pacotes iniciados por eles.

É importante restringir o acesso a computadores que executam um serviço SQL Server , especialmente um serviço SQL Server que pode enumerar pastas remotas. Qualquer usuário autenticado pode solicitar a enumeração dos pacotes. Mesmo se o serviço não localizar o serviço, ele enumerará as pastas. Esses nomes de pastas podem ser úteis a um usuário mal-intencionados. Se um administrador tiver configurado o serviço para enumerar pastas em uma máquina remota, os usuários também poderão ver os nomes de pastas que eles normalmente não conseguiriam consultar.

A lista a seguir contém links para tópicos que mostram como executar uma determinada tarefa relativa à segurança.