Protegendo conexões com o banco de dados

Configure a segurança para uma conexão com o banco de dados, se for requerido pelo provedor de banco de dados ou opcional.

Antes de Começar

Sobre esta tarefa

Alguns bancos de dados requerem que todo acesso é associado a um ID de usuário conhecido, para outros essa associação é opcional. Por exemplo, Db2® requer um nome de login e uma senha da fonte de dados em todas as conexões.

Use o comando mqsicredentials ou ibmint credentials para especificar um ID de usuário e uma senha que o nó de integração pode usar para acessar cada banco de dados. Como alternativa, você pode usar o comando mqsisetdbparms . Se um ID de usuário e uma senha não tiverem sido especificados para o acesso ao banco de dados, serão usados valores padrão para o ID de usuário e a senha, que são específicos da plataforma:

  1. Plataforma WindowsNo Windows: o ID de serviço e a senha do nó de integração especificados no comando mqsicreatebroker .
  2. Plataforma LinuxPlataforma UNIXEm Linux® e UNIX: o ID do usuário mqsiUser e a senha ******** (esses valores são fixos).
Etapas para configurar a segurança são específicos para o tipo de conexão com o banco de dados que você está utilizando. Escolha o tipo de conexão com o banco de dados para ver as etapas:

conexões ODBC

Sobre esta tarefa

Se a origem de dados ODBC requer que você defina o acesso seguro, ou se você deseja implementar a segurança em que este é opcional, conclua as seguintes etapas:

Procedimento

  1. Identifique os IDs de usuário que você deseja associar à conexão com o banco de dados, ou crie um ID do usuário com uma senha, seguindo as instruções apropriadas para seu sistema operacional e banco de dados.
  2. Defina os IDs de usuários e senhas que o nó de integração pode usar para acessar uma determinada fonte de dados.
  3. Criar IDs de usuários e senhas que podem ser usados para acessar a origem de dados a partir de um nó de integração ou servidor de integração.
    • Execute o comando mqsicredentials ou ibmint set credential , usando o seguinte formato:
      mqsicredentials broker_name --integration-server dbserver1 --create --credential-type odbc --credential-name data_source_name --username database_userID --password database_userID_password
      ou
      ibmint set credential --integration-node broker_name --integration-server dbserver1  --credential-type odbc --credential-name data_source_name --username database_userID --password database_userID_password

      ou

      ibmint set credential --external-directory-vault /var/mqsi/vault/ --external-directory-vault-key key  --credential-type odbc --credential-name data_source_name --username database_userID --password database_userID_password

      Se o servidor de integração for interrompido, você também deverá especificar a chave do cofre incluindo a opção --vault-key myVaultKey ou usando um arquivo vaultrc ; para obter mais detalhes, consulte o comando mqsicredentials.

      Execute o comando para cada servidor de integração no qual você necessita de credenciais para ser criado. Se você precisar de credenciais para ser criado em todos os servidores de integração sendo gerenciado pelo nó de integração, você pode utilizar a opção --all-integration-servers no comando.

    • Alternativamente, você pode executar o comando mqsisetdbparms para criar IDs de usuários e senhas que podem ser usados para acessar a origem de dados a partir de um nó de integração. Utilize o seguinte formato:
      mqsisetdbparms broker_name -n data_source_name -u database_userID -p database_userID_password

    O comando mqsicredentials armazena as identidades em vaulamentos separados para cada servidor de integração. O comando mqsisetdbparms cria a identidade no nível do nível do nó de integração e ele é posteriormente utilizado por todos os servidores de integração que são gerenciados pelo nó de integração.

  4. Opcional: Especifique se você deseja usar mesmo ID de usuário e senha para mais de um banco de dados como um conjunto padrão de credenciais:
    • Execute o comando mqsicredentials para identificar uma credencial específica como padrão. Tendo criado uma credencial na etapa 3, você pode executar o comando com o seguinte formato:
      mqsicredentials broker_name --integration-server dbserver1 --set-as-default --credential-type odbc --credential-name data_source_name
      A Seção Padrões do arquivo de configuração server.conf.yaml é atualizada em conformidade:
      Defaults:
        Credentials:
          odbc: 'data_source_name'
    • Alternativamente, você pode executar o comando mqsisetdbparms especificando dsn::DSN no parâmetro -n , como mostrado no exemplo a seguir:
      mqsisetdbparms broker_name -n dsn::DSN -u default_userID -p default_password

Resultados

Você tem assegurado o acesso à origem de dados ODBC.

conexões JDBC

Sobre esta tarefa

Se seu banco de dados requerer que você defina o acesso seguro, ou se você deseja implementar a segurança em que este é opcional, conclua as seguintes etapas:

Procedimento

  1. Identifique o ID do usuário que deseja associar à conexão do banco de dados ou crie um ID do usuário com uma senha, seguindo as instruções apropriadas para seu sistema operacional e banco de dados.
  2. Defina os IDs de usuários e senhas que o nó de integração pode usar para as conexões JDBC :
    • Execute o comando mqsicredentials , usando o seguinte formato:
      mqsicredentials broker_name --integration-server server_name --create --credential-type jdbc --credential-name security_identity --username userID --password password
      Por exemplo, se você quiser um ID de usuário myuserid com uma senha de secretpw para acessar um banco de dados em nó de integração INODE1, execute o comando mqsicredentials , conforme a seguir:
      mqsicredentials INODE1 --integration-server ISERVER1 --create --credential-type jdbc --credential-name mySecurityIdentity --usernme myuserid --password secretpw

      Se o servidor de integração for interrompido, você também deverá especificar a chave do cofre incluindo a opção --vault-key myVaultKey ou usando um arquivo vaultrc ; para obter mais detalhes, consulte o comando mqsicredentials.

      Execute o comando para cada servidor de integração no qual você necessita de credenciais para ser criado. Se você precisar de credenciais para ser criado em todos os servidores de integração sendo gerenciado pelo nó de integração, você pode utilizar a opção --all-integration-servers no comando.

      Alternativamente, você pode executar o comando mqsisetdbparms , usando o seguinte formato:

      mqsisetdbparms broker_name -n jdbc::security_identity -u userID -p password
      Exemplo:
      mqsisetdbparms INODE1 -n jdbc::mySecurityIdentity -u myuserid -p secretpw
      O prefixo jdbc:: indica que o security_identity deve ser usado para conexões JDBC.
    • Execute o comando mqsicredentials para identificar uma credencial específica como padrão:
      mqsicredentials broker_name --integration-server dbserver1 --set-as-default --credential-type jdbc --credential-name mySecurityIdentity

      Alternativamente, você pode executar o comando mqsisetdbparms especificando jdbc::JDBC no parâmetro -n , como mostrado no exemplo a seguir:

      mqsisetdbparms INODE1 -n jdbc::JDBC -u default_userID -p default default_password
    • Atualize a propriedade Identidade de segurança correspondente para a política de Provedores JDBC para associar a conexão com a identidade de segurança ou a credencial definida. Para obter mais informações, consulte a política JDBC Providers (JDBCProviders).
  3. Opcional: Configure o armazenamento de chaves e o armazenamento de certificados d JVM, se necessário.
    Muitos drivers do JDBC utilizam as configurações JVM TLS ao se conectarem de forma segura, recorrendo a propriedades do sistema como javax.net.ssl.keyStore, javax.net.ssl.trustStore, e javax.net.ssl.keyStorePassword para localizar certificados conforme necessário. Essas configurações podem ser definidas atualizando-se as propriedades relevantes na seção do gerenciador de recursos JVM no server.conf.yaml arquivo:
    
    ResourceManagers:
      JVM:
        ....
        keystoreType: 'P12'                          # JVM key store type (sets javax.net.ssl.keyStoreType)
        keystoreFile: '/path/to/keystore.p12'        # JVM location of the key store (sets javax.net.ssl.keyStore)
        keystorePass: 'brokerKeystore::password'     # Credential alias containing the key store password (sets javax.net.ssl.keyStorePassword)
        truststoreType: 'JKS'                        # JVM trust store type (sets javax.net.ssl.trustStoreType)
        truststoreFile: '/path/to/truststore.jks'    # JVM location of the trust store (sets javax.net.ssl.trustStore)
        truststorePass: 'brokerTruststore::password' # Credential alias containing the trust store password (sets javax.net.ssl.trustStorePassword)

    É possível evitar armazenar senhas em texto simples se você usar aliases de credenciais para senhas, atualizando o arquivo server.conf.yaml em vez de configurar as propriedades do sistema Java diretamente ou configurando senhas em uma política de Provedores JDBC .

Resultados

Você tem assegurado o acesso a seus bancos de dados JDBC. Se você precisa definir credenciais do usuário que possam ser compartilhadas em uma área de negócios ou conta, é possível reutilizar a mesma identidade de segurança que foi definida nas etapas anteriores em diferentes políticas Provedores JDBC.