本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Db2 稽核記錄
Amazon RDS 會使用 Db2 稽核記錄來記錄資料庫活動,包含登入資料庫的使用者,以及針對資料庫執行的查詢。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 (ARN) 和具有存取儲存貯體許可的 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,再以您的叢集 IAM 角色名稱取代 AROA123456789EXAMPLE。
{ "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 管理主控台 或 () 建立 IAM AWS Command Line Interface 政策AWS CLI。
建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
登入 AWS 管理主控台 並開啟位於 https://https://console.aws.amazon.com/iam/
的 IAM 主控台。 -
在導覽窗格中,選擇政策。
-
選擇建立政策,然後選擇 JSON。
-
在新增動作中,依 S3 篩選。新增存取 ListBucket、GetBucketAcl 和 GetBucketLocation。
-
針對新增資源,選擇新增。針對資源類型,選擇儲存貯體,然後輸入儲存貯體的名稱。然後,選擇新增資源。
-
選擇新增新陳述式。
-
在新增動作中,依 S3 篩選。新增存取 PutObject、ListMultipartUploadParts 和 AbortMultipartUpload。
-
針對新增資源,選擇新增。針對資源類型,選擇物件,然後輸入
您的儲存貯體名稱/*。然後,選擇新增資源。 -
選擇新增新陳述式。
-
在新增動作中,依 S3 篩選。新增存取 ListAllMyBuckets。
-
針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後,選擇新增資源。
-
如果您使用自己的 KMS 金鑰來加密資料:
-
選擇新增新陳述式。
-
在新增動作中,依 KMS 篩選。新增存取 GenerateDataKey 和 Decrypt。
-
針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後,選擇新增資源。
-
-
選擇下一步。
-
在政策名稱中,輸入此政策的名稱。
-
(選用) 在說明中,輸入此政策的說明。
-
選擇建立政策。
建立 IAM 政策以允許 Amazon RDS 存取您的 Amazon S3 儲存貯體
-
執行 create-policy 命令。在下列範例中,將
iam_policy_name和amzn-s3-demo-bucket取代為 IAM 政策和目標 Amazon S3 儲存貯體的名稱。在 Linux、macOS 或 Unix 中:
aws iam create-policy \ --policy-nameiam_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-nameiam_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": [ "*" ] } ] }' -
建立政策後,請記下政策的 ARN。您需要 步驟 3:建立 IAM 角色並附加您的 IAM 政策 的 ARN。
如需有關建立 IAM 政策的詳細資訊,請參閱 IAM 使用者指南中的建立 IAM 政策。
步驟 3:建立 IAM 角色並附加您的 IAM 政策
此步驟會假設您已在 步驟 2:建立 IAM 政策 中建立了 IAM 政策。在此步驟中,您會建立 RDS for Db2 資料庫執行個體的 IAM 角色,然後將 IAM 政策附加至角色。
您可以使用主控台或 AWS CLI來建立資料庫執行個體的 IAM 角色。
建立 IAM 角色,並將 IAM 政策連接至該角色
登入 AWS 管理主控台 ,並在 https://https://console.aws.amazon.com/iam/
開啟 IAM 主控台。 -
在導覽窗格中,選擇 Roles (角色)。
-
選擇 Create Role (建立角色)。
-
針對信任的實體類型,請選取 AWS 服務。
-
針對服務或使用案例,請選取 RDS,然後選取 RDS – 新增角色至資料庫。
-
選擇下一步。
-
針對許可政策,搜尋並選取您建立的 IAM 政策之名稱。
-
選擇下一步。
-
在 Role name (角色名稱) 中,輸入角色名稱。
-
(選用) 在 Description (說明) 中,輸入新角色的說明。
-
選擇建立角色。
建立 IAM 角色,並將 IAM 政策連接至該角色
-
執行 create-role 命令。在下列範例中,使用 IAM 角色的名稱取代
iam_role_name。在 Linux、macOS 或 Unix 中:
aws iam create-role \ --role-nameiam_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-nameiam_role_name^ --assume-role-policy-document '{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "rds.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }' -
角色建立後,請記下此角色的 ARN。下一個步驟需要用到此 ARN,步驟 4:設定 Db2 稽核記錄的選項群組。
-
執行 attach-role-policy 命令。在下列範例中,將
iam_policy_arn取代為您在 步驟 2:建立 IAM 政策 中所建立 IAM 政策的 ARN。將iam_role_name取代為您剛建立的 IAM 角色之名稱。在 Linux、macOS 或 Unix 中:
aws iam attach-role-policy \ --policy-arniam_policy_arn\ --role-nameiam_role_name在 Windows 中:
aws iam attach-role-policy ^ --policy-arniam_policy_arn^ --role-nameiam_role_name
如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以將許可委派給 IAM 使用者。
步驟 4:設定 Db2 稽核記錄的選項群組
將 Db2 稽核記錄選項新增至 RDS for Db2 資料庫執行個體的過程如下︰
-
建立新的選項群組,或是複製或修改現有選項群組。
-
新增和設定所有必要的選項。
-
將選項群組與資料庫執行個體建立關聯。
在您新增 Db2 稽核記錄選項之後,就不需要重新啟動資料庫執行個體。只要選項群組處於作用中狀態,您就可以建立稽核,並將稽核日誌儲存於 S3 儲存貯體。
若要在資料庫執行個體的選項群組中新增和設定 Db2 稽核記錄
-
選擇下列其中一項:
-
使用現有的選項群組。
-
建立自訂資料庫選項群組,並使用該選項群組。如需詳細資訊,請參閱建立選項群組。
-
-
將 DB2_AUDIT 選項新增至選項群組,並進行選項設定。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
針對 IAM_ROLE_ARN,輸入您在 步驟 3:建立 IAM 角色並附加您的 IAM 政策 中建立的 IAM 角色之 ARN。
-
針對 S3_BUCKET_ARN,輸入要用於 Db2 稽核日誌的 S3 儲存貯體之 ARN。儲存貯體必須位於與您的 RDS for Db2 資料庫執行個體相同的區域中。與您所輸入 IAM 角色相關聯的政策必須允許對此資源進行必要的作業。
-
-
將選項群組套用至新的或現有的資料庫執行個體。選擇下列其中一項:
-
如果您建立了新的資料庫執行個體,在啟動執行個體時套用選項群組。
-
針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
-
步驟 5:設定稽核政策
若要設定 RDS for Db2 資料庫的稽核政策,請使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至 rdsadmin 資料庫。然後,使用資料庫的資料庫名稱和適用的參數值呼叫 rdsadmin.configure_db_audit 預存程序。
下列範例會連線至資料庫,並使用 AUDIT、 CHECKING、OBJMAINT、SECMAINT、SYSADMIN 和 VALIDATE 等類別設定 testdb 的稽核政策。狀態值 BOTH 會記錄成功和失敗,ERROR TYPE 預設為 NORMAL。如需有關如何使用此預存程序的詳細資訊,請參閱 rdsadmin.configure_db_audit。
db2 "connect to rdsadmin usermaster_userusingmaster_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_ARN和IAM_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 資料庫執行個體的資料庫層級日誌檔案。
針對 Db2 稽核記錄日誌進行故障診斷
使用以下資訊進行 Db2 稽核記錄一般問題的故障診斷。
無法設定稽核政策
如果呼叫預存程序 rdsadmin.configure_db_audit 傳回錯誤,則使用 DB2_AUDIT 選項的選項群組可能與 RDS for Db2 資料庫執行個體沒有關聯。修改資料庫執行個體以新增選項群組,然後再次嘗試呼叫預存程序。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
Amazon S3 儲存貯體中沒有資料
如果 Amazon S3 儲存貯體缺少記錄資料,請檢查下列項目:
您可以連線至資料庫並執行 SQL 陳述式,以檢查稽核記錄組態的任務狀態。如需詳細資訊,請參閱檢查稽核組態。
您也可以檢查事件,以進一步了解日誌可能遺失的原因。如需檢視事件方式的相關資訊,請參閱 在 Amazon RDS 主控台中檢視日誌、事件和串流。