Registro em log de auditoria do Db2 - Amazon Relational Database Service

Registro em log de auditoria do Db2

Com o registro em log de auditoria do Db2, o Amazon RDS registra a atividade do banco de dados, incluindo usuários que fazem login no banco de dados e as consultas ao banco de dados que são executadas. O RDS faz upload dos logs de auditoria concluídos no bucket do Amazon S3 usando o perfil do AWS Identity and Access Management (IAM) que você fornece.

Configurar o registro em log de auditoria do Db2

Para habilitar o registro em log de auditoria para um banco de dados do Amazon RDS para Db2, você habilita a opção DB2_AUDIT na instância de banco de dados do RDS para Db2. Depois, configure uma política de auditoria para habilitar o recurso para o banco de dados específico. Para habilitar a opção na instância de banco de dados do RDS para Db2, você define as configurações da opção DB2_AUDIT. Você faz isso fornecendo os nomes de recursos da Amazon (ARNs) para o bucket do Amazon S3 e o perfil do IAM com permissões para acessar o bucket.

Para configurar o registro em log de auditoria do Db2 para um banco de dados do RDS para Db2, conclua as etapas a seguir.

Etapa 1: Crie um bucket do Amazon S3

Se você ainda não tiver feito isso, crie um bucket do Amazon S3 no qual o Amazon RDS possa fazer upload dos arquivos de log de auditoria do banco de dados do RDS para Db2. As seguintes restrições se aplicam ao bucket do S3 que você usa como destino para arquivos de auditoria:

  • Ele deve estar na mesma Região da AWS que a instância de banco de dados do RDS para Db2.

  • Ele não deve estar aberto ao público.

  • Ele não pode usar S3 Object Lock.

  • O proprietário do bucket também deve ser o proprietário da função do IAM.

Para saber como criar um bucket do Amazon S3, consulte Criação de um bucket no Guia do usuário do Amazon S3.

Depois de habilitar o registro em log de auditoria, o Amazon RDS envia automaticamente os logs da instância de banco de dados para os seguintes locais:

  • Logs do nível da instância de banco de dados: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Logs do nível de banco de dados: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

Anote o nome do recurso da Amazon (ARN) do bucket. Essas informações são necessárias para concluir as etapas subsequentes.

Etapa 2: criar uma política do IAM

Crie uma política do IAM com as permissões exigidas para transferir arquivos de log de auditoria da instância de banco de dados para o bucket do Amazon S3. Essa etapa pressupõe que você tenha um bucket do S3.

Antes de criar a política, colete as seguintes informações:

  • O ARN do bucket.

  • O ARN da chave do AWS Key Management Service (AWS KMS), se o bucket usar criptografia SSE-KMS.

Crie uma política do IAM que inclua as seguintes permissões:

"s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:ListAllMyBuckets"
nota

O Amazon RDS precisa da ação s3:ListAllMyBuckets internamente para verificar se a mesma Conta da AWS tem o bucket do S3 e a instância de banco de dados do Db2.

Se o bucket usa criptografia SSE-KMS, inclua também as seguintes permissões:

"kms:GenerateDataKey", "kms:Decrypt"

É possível criar uma política do IAM usando o AWS Management Console ou a AWS Command Line Interface (AWS CLI).

Como criar uma política do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Políticas.

  3. Selecione Criar política e, depois, escolha a guia JSON.

  4. Em Adicionar ações, filtre por S3. Adicione acesso ListBucket, GetBucketAcl e GetBucketLocation.

  5. Em Adicionar um recurso, escolha Adicionar. Em Tipo de recurso, escolha bucket e insira o nome do bucket. Depois, escolha Adicionar recurso.

  6. Escolha Adicionar nova instrução.

  7. Em Adicionar ações, filtre por S3. Adicione acesso PutObject, ListMultipartUploadParts e AbortMultipartUpload.

  8. Em Adicionar um recurso, escolha Adicionar. Em Tipo de recurso, escolha objeto e insira o nome do bucket/*. Depois, escolha Adicionar recurso.

  9. Escolha Adicionar nova instrução.

  10. Em Adicionar ações, filtre por S3. Adicione acesso ListAllMyBuckets.

  11. Em Adicionar um recurso, escolha Adicionar. Em Tipo de recurso, escolha Todos os recursos. Depois, escolha Adicionar recurso.

  12. Se estiver usando suas próprias chaves do KMS para criptografar os dados:

    1. Escolha Adicionar nova instrução.

    2. Em Adicionar ações, filtre por KMS. Adicione acesso GenerateDataKey e Decrypt.

    3. Em Adicionar um recurso, escolha Adicionar. Em Tipo de recurso, escolha Todos os recursos. Depois, escolha Adicionar recurso.

  13. Escolha Próximo.

  14. Em Nome da política, digite um nome para essa política.

  15. (Opcional) Em Descrição, digite uma descrição para essa política.

  16. Escolha Criar política.

Como criar uma política do IAM para permitir acesso do Amazon RDS a um bucket do Amazon S3
  1. Execute o comando create-policy. No exemplo a seguir, substitua iam_policy_name e amzn-s3-demo-bucket pelo nome da sua política do IAM e pelo nome do bucket de destino do Amazon S3.

    Para Linux, macOS ou Unix:

    aws iam create-policy \ --policy-name iam_policy_name \ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'

    Para Windows:

    aws iam create-policy ^ --policy-name iam_policy_name ^ --policy-document '{ "Version": "2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Action": [ "s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket" ] }, { "Sid": "Statement2", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket/*" ] }, { "Sid": "Statement3", "Effect": "Allow", "Action": [ "s3:ListAllMyBuckets" ], "Resource": [ "*" ] }, { "Sid": "Statement4", "Effect": "Allow", "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": [ "*" ] } ] }'
  2. Depois de criar a política, anote o ARN da política. É necessário ter o ARN do Etapa 3: criar um perfil do IAM e associar a política do IAM.

Para ter informações sobre como criar uma política do IAM, consulte Criação de políticas do IAM no Guia do usuário do IAM.

Etapa 3: criar um perfil do IAM e associar a política do IAM

Esta etapa pressupõe que você tenha criado a política do IAM no Etapa 2: criar uma política do IAM. Nesta etapa, você vai criar um perfil do IAM para a instância de banco de dados do RDS para Db2 e anexar a política do IAM ao perfil.

É possível criar um perfil do IAM para a instância de banco de dados usando o console ou a AWS CLI.

Como criar um perfil do IAM e associar a política do IAM a ele
  1. Faça login no AWS Management Console e abra o console do IAM em https://console.aws.amazon.com/iam/.

  2. No painel de navegação, escolha Roles.

  3. Escolha Criar Perfil.

  4. Em Tipo de entidade confiável, selecione AWS service (Serviço da AWS).

  5. Para Serviço ou caso de uso, selecione RDS e, depois, selecione RDS: adicionar perfil ao banco de dados.

  6. Escolha Próximo.

  7. Em Políticas de permissões, pesquise e selecione o nome da política do IAM que você criou.

  8. Escolha Próximo.

  9. Em Role name (Nome da função), insira um nome.

  10. (Opcional) Em Descrição da função, insira uma descrição para a nova função.

  11. Escolha Criar Perfil.

Como criar um perfil do IAM e associar a política do IAM a ele
  1. Execute o comando create-role. No exemplo a seguir, substitua iam_role_name por um nome para o perfil do IAM.

    Para Linux, macOS ou Unix:

    aws iam create-role \ --role-name iam_role_name \ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'

    Para Windows:

    aws iam create-role ^ --role-name iam_role_name ^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }'
  2. Depois que o perfil for criado, observe o respectivo ARN. Você precisará desse ARN na próxima etapa, Etapa 4: configurar um grupo de opções para o registro em log de auditoria do Db2.

  3. Execute o comando attach-role-policy. No exemplo a seguir, substitua iam_policy_arn pelo ARN da política do IAM que você criou em Etapa 2: criar uma política do IAM. Substitua iam_role_name pelo nome do perfil do IAM que você acabou de criar.

    Para Linux, macOS ou Unix:

    aws iam attach-role-policy \ --policy-arn iam_policy_arn \ --role-name iam_role_name

    Para Windows:

    aws iam attach-role-policy ^ --policy-arn iam_policy_arn ^ --role-name iam_role_name

Para ter mais informações, consulte Criar um perfil para delegar permissões a um usuário do IAM no Guia do usuário do IAM.

Etapa 4: configurar um grupo de opções para o registro em log de auditoria do Db2

O processo para adicionar a opção de registro em log de auditoria do Db2 a uma instância de banco de dados do RDS para Db2 é o seguinte:

  1. Crie um novo grupo de opções, ou copie ou modifique um existente.

  2. Adicione e configure todas as opções necessárias.

  3. Associe o grupo de opções à instância de banco de dados.

Depois de adicionar a opção de registro em log de auditoria do Db2, você não precisará reiniciar a instância de banco de dados. Assim que o grupo de opções estiver ativo, você poderá criar auditorias e armazenar logs de auditoria no seu bucket do S3.

Para adicionar e configurar o registro em log de auditoria do Db2 em um grupo de opções da instância de banco de dados
  1. Escolha uma das seguintes opções:

    • Use um grupo de opções existente.

    • Crie um grupo de opções de banco de dados personalizado e use esse grupo de opções. Para ter mais informações, consulte Criar um grupo de opções.

  2. Adicione a opção DB2_AUDIT ao grupo de opções e defina as configurações da opção. Para ter mais informações sobre a adição de opções, consulte Adicionar uma opção a um grupo de opções.

    • Em IAM_ROLE_ARN, insira o ARN do perfil do IAM que você criou em Etapa 3: criar um perfil do IAM e associar a política do IAM.

    • Para S3_BUCKET_ARN, insira o ARN do bucket do S3 a ser usado para os logs de auditoria do Db2. O bucket deve estar na mesma região que a instância de banco de dados do RDS para Db2. A política associada ao perfil do IAM que você inseriu deve permitir as operações necessárias nesse recurso.

  3. Aplique o grupo de opções a uma instância de banco de dados nova ou existente. Escolha uma das seguintes opções:

    • Se você estiver criando uma nova instância de banco de dados, aplique o grupo de opções ao executar a instância.

    • Em uma instância de banco de dados existente, aplique o grupo de opções modificando a instância e anexando o novo grupo de opções. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

Etapa 5: configurar a política de auditoria

Para configurar a política de auditoria do banco de dados do RDS para Db2, conecte-se ao banco de dados rdsadmin usando o nome de usuário e a senha principais da instância de banco de dados do RDS para Db2. Depois, chame o procedimento armazenado rdsadmin.configure_db_audit com o nome do banco de dados e os valores dos parâmetros aplicáveis.

O exemplo a seguir se conecta ao banco de dados e configura uma política de auditoria testdb com as categorias AUDIT, CHECKING, OBJMAINT, SECMAINT, SYSADMIN e VALIDATE. O valor do status BOTH registra em log sucessos e falhas, e o ERROR TYPE é NORMAL por padrão. Consulte mais informações sobre como usar esse procedimento armazenado em rdsadmin.configure_db_audit.

db2 "connect to rdsadmin user master_user using master_password" db2 "call rdsadmin.configure_db_audit('testdb', 'ALL', 'BOTH', ?)"

Etapa 6: verificar a configuração da auditoria

Para garantir que a política de auditoria esteja configurada corretamente, verifique o status da configuração da auditoria.

Para verificar a conexão, conecte-se ao banco de dados rdsadmin usando o nome de usuário e a senha principais da instância de banco de dados do RDS para Db2. Depois, use a instrução SQL a seguir com o nome do banco de dados. No exemplo a seguir, o nome do banco de dados é testdb.

db2 "select task_id, task_type, database_name, lifecycle, varchar(bson_to_json(task_input_params), 500) as task_params, cast(task_output as varchar(500)) as task_output from table(rdsadmin.get_task_status(null,'testdb','CONFIGURE_DB_AUDIT'))" Sample Output TASK_ID TASK_TYPE DATABASE_NAME LIFECYCLE -------------------- -------------------- --------------- ------------- 2 CONFIGURE_DB_AUDIT DB2DB SUCCESS ... continued ... TASK_PARAMS -------------------------------------------------------- { "AUDIT_CATEGORY" : "ALL", "CATEGORY_SETTING" : "BOTH" } ... continued ... TASK_OUTPUT --------------------------------------------------- 2023-12-22T20:27:03.029Z Task execution has started. 2023-12-22T20:27:04.285Z Task execution has completed successfully.

Gerenciar o registro em log de auditoria do Db2

Depois de configurar o registro em log de auditoria do Db2, você pode modificar a política de auditoria para um banco de dados específico ou desabilitar o registro em log de auditoria no nível do banco de dados ou para toda a instância de banco de dados. Você também pode alterar o bucket do Amazon S3 para o qual os arquivos de log são enviados.

Modificar uma política de auditoria do Db2

Para modificar a política de auditoria de um banco de dados específico do RDS para Db2, execute o procedimento armazenado rdsadmin.configure_db_audit. Com esse procedimento armazenado, você pode alterar as categorias, as configurações da categoria e a configuração do tipo de erro da política de auditoria. Para ter mais informações, consulte rdsadmin.configure_db_audit.

Modificar o local dos arquivos de log

Para alterar o bucket do Amazon S3 no qual os arquivos de log são carregados, realize uma das seguintes ações:

  • Modifique o grupo de opções atual anexado à instância de banco de dados do RDS para Db2: atualize a configuração S3_BUCKET_ARN da opção DB2_AUDIT a fim de apontar para o novo bucket. Além disso, atualize a política do IAM anexada ao perfil do IAM especificado pela configuração IAM_ROLE_ARN no grupo de opções anexado. Essa política do IAM deve fornecer ao novo bucket as permissões de acesso necessárias. Consulte mais informações sobre as permissões exigidas na política do IAM em Criar uma política do IAM.

  • Anexe a instância de banco de dados do RDS para Db2 a um grupo de opções diferente: modifique a instância de banco de dados para alterar o grupo de opções anexado a ela. O novo grupo de opções deve estar configurado com as definições S3_BUCKET_ARN e IAM_ROLE_ARN corretas. Consulte informações sobre como definir essas configurações para a opção DB2_AUDIT em Configurar um grupo de opções.

Ao modificar o grupo de opções, aplique as alterações imediatamente. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

Desabilitar o registro em log de auditoria do Db2

Para desabilitar o registro em log de auditoria do Db2, realize uma das seguintes ações:

  • Desabilite o registro em log de auditoria para a instância de banco de dados do RDS para Db2: modifique a instância de banco de dados e remova o grupo de opções com a opção DB2_AUDIT da instância. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

  • Desabilite o registro em log de auditoria para um banco de dados específico: interrompa o registro em log de auditoria e remova a política de auditoria chamando rdsadmin.disable_db_audit com o nome do banco de dados. Para ter mais informações, consulte rdsadmin.disable_db_audit.

    db2 "call rdsadmin.disable_db_audit( 'db_name')"

Visualizar logs de auditoria

Depois de habilitar o registro em log de auditoria do Db2, aguarde pelo menos uma hora antes de visualizar os dados de auditoria no bucket do Amazon S3. O Amazon RDS envia automaticamente os logs da instância de banco de dados do RDS para Db2 aos seguintes locais:

  • Logs do nível da instância de banco de dados: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • Logs do nível de banco de dados: bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

O exemplo de captura de tela a seguir do console do Amazon S3 mostra uma lista de pastas para arquivos de log no nível da instância de banco de dados do RDS para Db2.

Console do Amazon S3 com a guia Objetos selecionada, mostrando uma lista de pastas para arquivos de log em nível de instância de banco de dados do RDS para Db2.

O exemplo de captura de tela a seguir do console do Amazon S3 mostra arquivos de log no nível de banco de dados para a instância de banco de dados do RDS para Db2.

Console do Amazon S3 com a guia Objetos selecionada, mostrando arquivos de log em nível de banco de dados para a instância de banco de dados do RDS para Db2.

Solução de problemas do registro em log da auditoria do Db2

Use as informações a seguir para solucionar problemas comuns com o registro em log de auditoria do Db2.

Não é possível configurar a política de auditoria

Se chamar o procedimento armazenado rdsadmin.configure_db_audit retornar um erro, pode ser que o grupo de opções com a opção DB2_AUDIT não esteja associado à instância de banco de dados do RDS para Db2. Modifique a instância de banco de dados para adicionar o grupo de opções e tente chamar o procedimento armazenado novamente. Para ter mais informações, consulte Modificar uma instância de banco de dados do Amazon RDS.

Nenhum dado no bucket do Amazon S3

Se não houver nenhum dado de log no bucket do Amazon S3, verifique se:

  • O bucket do Amazon S3 está na mesma região da instância de banco de dados do RDS para Db2.

  • O perfil que você especificou na configuração da opção IAM_ROLE_ARN está configurado com as permissões necessárias para fazer upload de logs no bucket do Amazon S3. Para ter mais informações, consulte Criar uma política do IAM.

  • Os ARNs para as configurações da opção IAM_ROLE_ARN e S3_BUCKET_ARN estão corretos no grupo de opções associado à instância de banco de dados do RDS para Db2. Para ter mais informações, consulte Configurar um grupo de opções.

Você pode verificar o status da tarefa da configuração do registro em log de auditoria conectando-se ao banco de dados e executando uma instrução SQL. Para ter mais informações, consulte Verificar a configuração da auditoria.

Também é possível verificar os eventos para saber mais sobre por que os logs podem estar ausentes. Consulte informações sobre como visualizar eventos em Visualizar logs, eventos e transmissões no console do Amazon RDS.