本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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 儲存貯體
登入 AWS Management Console ,並在 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-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": [ "*" ] } ] }' -
建立政策後,請注意政策的 ARN。您需要 的 ARN步驟 3:建立 IAM 角色並連接您的 IAM 政策。
如需建立 IAM 政策的相關資訊,請參閱《IAM 使用者指南》中的建立 IAM 政策。
步驟 3:建立 IAM 角色並連接您的 IAM 政策
此步驟假設您在 中建立 IAM 政策步驟 2:建立 IAM 政策。在此步驟中,您會為 RDS for Db2 資料庫執行個體建立 IAM 角色,然後將 IAM 政策連接至角色。
您可以使用 主控台或 為資料庫執行個體建立 IAM 角色 AWS CLI。
建立 IAM 角色並將 IAM 政策連接至該角色
登入 AWS Management Console 並開啟位於 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-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" } ] }' -
建立角色之後,請注意此角色的 ARN。您需要此 ARN 才能進行下一個步驟:步驟 4:設定 Db2 稽核記錄的選項群組。
-
執行 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-nameiam_role_name
在 Windows 中:
aws iam attach-role-policy ^ --policy-arn
iam_policy_arn
^ --role-nameiam_role_name
如需詳細資訊,請參閱《IAM 使用者指南》中的建立角色以將許可委派給 IAM 使用者。
步驟 4:設定 Db2 稽核記錄的選項群組
將 Db2 稽核記錄選項新增至 RDS for Db2 資料庫執行個體的程序如下:
-
建立新的選項群組,或是複製或修改現有選項群組。
-
新增和設定所有必要的選項。
-
將選項群組與資料庫執行個體建立關聯。
新增 Db2 稽核記錄選項後,您不需要重新啟動資料庫執行個體。只要選項群組處於作用中狀態,您就可以建立稽核,並將稽核日誌儲存於 S3 儲存貯體。
在資料庫執行個體的選項群組上新增和設定 Db2 稽核記錄
-
選擇下列其中一項:
-
使用現有的選項群組。
-
建立自訂資料庫選項群組,並使用該選項群組。如需詳細資訊,請參閱建立選項群組。
-
-
將 DB2_AUDIT 選項新增至選項群組,並設定選項設定。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
針對 IAM_ROLE_ARN,輸入您在 中建立之 IAM 角色的 ARN步驟 3:建立 IAM 角色並連接您的 IAM 政策。
-
針對 S3_BUCKET_ARN,輸入要用於 Db2 稽核日誌之 S3 儲存貯體的 ARN。儲存貯體必須與 RDS for Db2 資料庫執行個體位於相同的區域。與您輸入的 IAM 角色相關聯的政策必須允許對此資源進行必要的操作。
-
-
將選項群組套用至新的或現有的資料庫執行個體。選擇下列其中一項:
-
如果您建立了新的資料庫執行個體,在啟動執行個體時套用選項群組。
-
針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
-
步驟 5:設定稽核政策
若要設定 RDS for Db2 資料庫的稽核政策,rdsadmin
請使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。然後,使用資料庫的資料庫名稱和適用的參數值呼叫rdsadmin.configure_db_audit
預存程序。
下列範例會連線至資料庫,並使用 AUDIT、 CHECKING、OBJMAINT、SECMAINT、SYSADMIN 和 VALIDATE testdb
類別設定 的稽核政策。狀態值會BOTH
記錄成功和失敗,預設為 ERROR TYPE
NORMAL
。如需如何使用此預存程序的詳細資訊,請參閱 rdsadmin.configure_db_audit。
db2 "connect to rdsadmin user
master_user
usingmaster_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 主控台中檢視日誌、事件和串流。