Db2 稽核記錄 - Amazon Relational Database Service

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

Db2 稽核記錄

透過 Db2 稽核記錄,Amazon RDS 會記錄資料庫活動,包括登入資料庫的使用者,以及針對資料庫執行的查詢。RDS 會使用您提供的 AWS Identity and Access Management (IAM) 角色,將完成的稽核日誌上傳至 Amazon S3 儲存貯體。

設定 Db2 稽核記錄

若要啟用 Amazon RDS for Db2 資料庫的稽核記錄,請在 RDS for Db2 資料庫執行個體上啟用 DB2_AUDIT選項。然後,設定稽核政策以啟用特定資料庫的功能。若要在 RDS for Db2 資料庫執行個體上啟用 選項,您可以設定 DB2_AUDIT選項的選項設定。您可以透過提供 Amazon S3 儲存貯體的 Amazon Resource Name (ARNs) 和具有存取儲存貯體許可的 IAM 角色來執行此操作。

若要設定 RDS for Db2 資料庫的 Db2 稽核記錄,請完成下列步驟。

步驟 1:建立 Amazon S3 儲存貯體

如果您尚未這麼做,請建立 Amazon S3 儲存貯體,讓 Amazon RDS 可以上傳 RDS for Db2 資料庫的稽核日誌檔案。下列限制適用於使用為稽核檔案目標的 S3 儲存貯體︰

  • 它必須與 AWS 區域 RDS for Db2 資料庫執行個體位於相同的 中。

  • 它不可以開放給大眾使用。

  • 儲存貯體擁有者也必須是 IAM 角色擁有者。

若要了解如何建立 Amazon S3 儲存貯體,請參閱《Amazon S3 使用者指南》中的建立儲存貯體

啟用稽核記錄之後,Amazon RDS 會自動將日誌從您的資料庫執行個體傳送至下列位置:

  • 資料庫執行個體層級日誌 – bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • 資料庫層級日誌 – bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

請記下儲存貯體的 Amazon Resource Name (ARN)。需要此資訊才能完成後續步驟。

步驟 2:建立 IAM 政策

建立具有將稽核日誌檔案從資料庫執行個體傳輸至 Amazon S3 儲存貯體所需許可的 IAM 政策。此步驟假設您有一個 S3 儲存貯體。

建立政策之前,請先收集下列資訊:

  • 儲存貯體的 ARN。

  • 如果您的儲存貯體使用SSE-KMS加密,則為您的 AWS Key Management Service (AWS KMS) 金鑰的 ARN。

建立包含下列許可的 IAM 政策:

"s3:ListBucket", "s3:GetBucketAcl", "s3:GetBucketLocation", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:ListAllMyBuckets"
注意

Amazon RDS 需要在內部執行 s3:ListAllMyBuckets動作,以確認相同的 同時 AWS 帳戶 擁有 S3 儲存貯體和 RDS for Db2 資料庫執行個體。

如果您的儲存貯體使用SSE-KMS加密,請同時包含 IAM 角色和 AWS KMS 金鑰的下列許可。

將下列許可納入 IAM 角色的政策。

"kms:GenerateDataKey", "kms:Decrypt"

將下列許可納入金鑰的 AWS KMS 金鑰政策。將 111122223333 取代為您的帳號,並將 AROA123456789EXAMPLE取代為您的 IAM 角色名稱。

{ "Sid": "Allow RDS role to use the key", "Effect": "Allow", "Principal": { "AWS": [ "arn:aws:sts::111122223333:assumed-role/AROA123456789EXAMPLE/RDS-Db2Audit", "arn:aws:iam::111122223333:role/AROA123456789EXAMPLE" ] }, "Action": [ "kms:GenerateDataKey", "kms:Decrypt" ], "Resource": "*" }

您可以使用 AWS Management Console 或 () 建立 IAM AWS Command Line Interface 政策AWS CLI。

建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
  1. 登入 AWS Management Console ,並在 https://https://console.aws.amazon.com/iam/ 開啟 IAM 主控台。

  2. 在導覽窗格中,選擇政策

  3. 選擇建立政策,然後選擇 JSON

  4. 新增動作中,依 S3 篩選。新增存取 ListBucketGetBucketAclGetBucketLocation

  5. 針對新增資源,選擇新增。針對資源類型,選擇儲存體,然後輸入儲存貯體的名稱。然後,選擇新增資源

  6. 選擇新增陳述式

  7. 新增動作中,依 S3 篩選。新增存取權 PutObjectListMultipartUploadPartsAbortMultipartUpload

  8. 針對新增資源,選擇新增。針對資源類型,選擇 物件,然後輸入您的儲存貯體名稱/*。然後,選擇新增資源

  9. 選擇新增陳述式

  10. 新增動作中,依 S3 篩選。新增存取 ListAllMyBuckets

  11. 針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後,選擇新增資源

  12. 如果您使用自己的 KMS 金鑰來加密資料:

    1. 選擇新增陳述式

    2. 新增動作中,依 KMS 篩選。新增存取 GenerateDataKeyDecrypt

    3. 針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後,選擇新增資源

  13. 選擇下一步

  14. 針對政策名稱,輸入此政策的名稱。

  15. (選用) 針對描述,輸入此政策的描述。

  16. 選擇建立政策

建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
  1. 執行 create-policy 命令。在下列範例中,將 iam_policy_nameamzn-s3-demo-bucket 取代為 IAM 政策和目標 Amazon S3 儲存貯體的名稱。

    對於 Linux、 macOS或 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": [ "*" ] } ] }'

    在 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. 建立政策後,請注意政策的 ARN。您需要 的 ARN步驟 3:建立 IAM 角色並連接您的 IAM 政策

如需建立 IAM 政策的相關資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策

步驟 3:建立 IAM 角色並連接您的 IAM 政策

此步驟假設您在 中建立 IAM 政策步驟 2:建立 IAM 政策。在此步驟中,您會為 RDS for Db2 資料庫執行個體建立 IAM 角色,然後將 IAM 政策連接至角色。

您可以使用 主控台或 為資料庫執行個體建立 IAM 角色 AWS CLI。

建立 IAM 角色並將 IAM 政策連接至該角色
  1. 登入 AWS Management Console 並開啟位於 https://https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. 在導覽窗格中,選擇 Roles (角色)。

  3. 選擇 Create Role (建立角色)。

  4. 針對信任的實體類型,選取 AWS 服務

  5. 針對服務或使用案例,選取 RDS,然後選取 RDS – 新增角色至資料庫

  6. 選擇下一步

  7. 針對許可政策,搜尋並選取您建立的 IAM 政策名稱。

  8. 選擇下一步

  9. Role name (角色名稱) 中,輸入角色名稱。

  10. (選用) 在 Description (說明) 中,輸入新角色的說明。

  11. 選擇建立角色

建立 IAM 角色並將 IAM 政策連接至該角色
  1. 執行 create-role 命令。在下列範例中,使用 IAM 角色的名稱取代 iam_role_name

    對於 Linux、 macOS或 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" } ] }'

    在 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. 建立角色之後,請注意此角色的 ARN。您需要此 ARN 才能進行下一個步驟:步驟 4:設定 Db2 稽核記錄的選項群組

  3. 執行 attach-role-policy 命令。在下列範例中,將 iam_policy_arn 取代為您在 中建立之 IAM 政策的 ARN步驟 2:建立 IAM 政策。將 iam_role_name 取代為您剛建立的 IAM 角色名稱。

    對於 Linux、 macOS或 Unix:

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

    在 Windows 中:

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

如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以將許可委派給 IAM 使用者

步驟 4:設定 Db2 稽核記錄的選項群組

將 Db2 稽核記錄選項新增至 RDS for Db2 資料庫執行個體的程序如下:

  1. 建立新的選項群組,或是複製或修改現有選項群組。

  2. 新增和設定所有必要的選項。

  3. 將選項群組與資料庫執行個體建立關聯。

新增 Db2 稽核記錄選項後,您不需要重新啟動資料庫執行個體。只要選項群組處於作用中狀態,您就可以建立稽核,並將稽核日誌儲存於 S3 儲存貯體。

在資料庫執行個體的選項群組上新增和設定 Db2 稽核記錄
  1. 選擇下列其中一項:

    • 使用現有的選項群組。

    • 建立自訂資料庫選項群組,並使用該選項群組。如需詳細資訊,請參閱建立選項群組

  2. DB2_AUDIT 選項新增至選項群組,並設定選項設定。如需新增選項的詳細資訊,請參閱將選項新增至選項群組

    • 針對 IAM_ROLE_ARN,輸入您在 中建立之 IAM 角色的 ARN步驟 3:建立 IAM 角色並連接您的 IAM 政策

    • 針對 S3_BUCKET_ARN,輸入要用於 Db2 稽核日誌之 S3 儲存貯體的 ARN。儲存貯體必須與 RDS for Db2 資料庫執行個體位於相同的區域。與您輸入的 IAM 角色相關聯的政策必須允許對此資源進行必要的操作。

  3. 將選項群組套用至新的或現有的資料庫執行個體。選擇下列其中一項:

    • 如果您建立了新的資料庫執行個體,在啟動執行個體時套用選項群組。

    • 針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體

步驟 5:設定稽核政策

若要設定 RDS for Db2 資料庫的稽核政策,rdsadmin請使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。然後,使用資料庫的資料庫名稱和適用的參數值呼叫rdsadmin.configure_db_audit預存程序。

下列範例會連線至資料庫,並使用 AUDIT、 CHECKING、OBJMAINT、SECMAINT、SYSADMIN 和 VALIDATE testdb類別設定 的稽核政策。狀態值會BOTH記錄成功和失敗,預設為 ERROR TYPENORMAL。如需如何使用此預存程序的詳細資訊,請參閱 rdsadmin.configure_db_audit

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

步驟 6:檢查稽核組態

為了確保您的稽核政策設定正確,請檢查稽核組態的狀態。

若要檢查組態,請使用 RDS for Db2 rdsadmin 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。然後,使用資料庫的資料庫名稱執行下列 SQL 陳述式。在下列範例中,資料庫名稱為 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.

管理 Db2 稽核記錄

設定 Db2 稽核記錄之後,您可以修改特定資料庫的稽核政策,或在資料庫層級或整個資料庫執行個體停用稽核記錄。您也可以變更日誌檔案上傳到的 Amazon S3 儲存貯體。

修改 Db2 稽核政策

若要修改特定 RDS for Db2 資料庫的稽核政策,請執行rdsadmin.configure_db_audit預存程序。透過此預存程序,您可以變更稽核政策的類別、類別設定和錯誤類型組態。如需詳細資訊,請參閱rdsadmin.configure_db_audit

修改日誌檔案的位置

若要變更上傳日誌檔案的 Amazon S3 儲存貯體,請執行下列其中一項操作:

  • 修改連接至 RDS for Db2 資料庫執行個體的目前選項群組 – 更新DB2_AUDIT選項S3_BUCKET_ARN的設定,以指向新的儲存貯體。此外,請務必更新連接至所連接選項群組中 IAM_ROLE_ARN設定所指定之 IAM 角色的 IAM 政策。此 IAM 政策必須提供您的新儲存貯體所需的存取許可。如需 IAM 政策中所需許可的資訊,請參閱 建立 IAM 政策

  • 將 RDS for Db2 資料庫執行個體連接至不同的選項群組 – 修改資料庫執行個體以變更連接至該執行個體的選項群組。請確定新的選項群組已設定正確的 S3_BUCKET_ARNIAM_ROLE_ARN設定。如需如何為 DB2_AUDIT選項設定這些設定的資訊,請參閱 設定選項群組

當您修改選項群組時,請確定您立即套用變更。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體

停用 Db2 稽核記錄

若要停用 Db2 稽核記錄,請執行下列其中一項操作:

  • 停用 RDS for Db2 資料庫執行個體的稽核記錄 – 修改資料庫執行個體,並使用 選項從中移除DB2_AUDIT選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體

  • 停用特定資料庫的稽核記錄 – rdsadmin.disable_db_audit使用資料庫名稱呼叫 ,以停止稽核記錄並移除稽核政策。如需詳細資訊,請參閱rdsadmin.disable_db_audit

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

檢視稽核日誌

啟用 Db2 稽核記錄之後,請等待至少一小時,再檢視 Amazon S3 儲存貯體中的稽核資料。Amazon RDS 會自動將日誌從 RDS for Db2 資料庫執行個體傳送至下列位置:

  • 資料庫執行個體層級日誌 – bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/

  • 資料庫層級日誌 – bucket_name/db2-audit-logs/dbi_resource_id/date_time_utc/db_name/

下列 Amazon S3 主控台範例螢幕擷取畫面顯示 RDS for Db2 資料庫執行個體層級日誌檔案的資料夾清單。

選取物件索引標籤的 Amazon S3 主控台,顯示 RDS for Db2 資料庫執行個體層級日誌檔案的資料夾清單。

Amazon S3 主控台的下列範例螢幕擷取畫面顯示 RDS for Db2 資料庫執行個體的資料庫層級日誌檔案。

選取物件索引標籤的 Amazon S3 主控台,顯示 RDS for Db2 資料庫執行個體的資料庫層級日誌檔案。

故障診斷 Db2 稽核記錄

使用以下資訊對 Db2 稽核記錄的常見問題進行故障診斷。

無法設定稽核政策

如果呼叫預存程序rdsadmin.configure_db_audit傳回錯誤,則使用 DB2_AUDIT 選項的選項群組可能與 RDS for Db2 資料庫執行個體沒有關聯。修改資料庫執行個體以新增選項群組,然後再次嘗試呼叫預存程序。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體

Amazon S3 儲存貯體中沒有資料

如果 Amazon S3 儲存貯體缺少記錄資料,請檢查下列項目:

  • Amazon S3 儲存貯體與 RDS for Db2 資料庫執行個體位於相同的區域。

  • 您在IAM_ROLE_ARN選項設定中指定的角色已設定必要的許可,以將日誌上傳至您的 Amazon S3 儲存貯體。如需詳細資訊,請參閱建立 IAM 政策

  • 與 RDS for Db2 資料庫執行個體相關聯的選項群組中, IAM_ROLE_ARNS3_BUCKET_ARN 選項設定的 ARNs 是正確的。如需詳細資訊,請參閱設定選項群組

您可以連線至資料庫並執行 SQL 陳述式,以檢查稽核記錄組態的任務狀態。如需詳細資訊,請參閱檢查稽核組態

您也可以檢查事件,進一步了解日誌可能遺失的原因。如需如何檢視事件的資訊,請參閱 在 Amazon RDS 主控台中檢視日誌、事件和串流