本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Db2 稽核記錄
透過 Db2 稽核記錄,Amazon 會RDS記錄資料庫活動,包括登入資料庫的使用者,以及針對資料庫執行的查詢。 會使用您提供的 AWS Identity and Access Management (IAM) 角色,將完成的稽核日誌RDS上傳至您的 Amazon S3 儲存貯體。
設定 Db2 稽核記錄
若要啟用 Amazon RDS for Db2 資料庫的稽核記錄,請在RDS適用於 Db2 資料庫執行個體的 上啟用 DB2_AUDIT
選項。然後,設定稽核政策以啟用特定資料庫的功能。若要在RDS適用於 Db2 資料庫執行個體的 上啟用 選項,您可以設定 DB2_AUDIT
選項的選項設定。您可以透過提供 Amazon S3 儲存貯體的 Amazon Resource Name (ARNs) 和具有存取儲存貯體許可IAM的角色來執行此操作。
若要設定適用於 Db2 資料庫的 RDS的 Db2 稽核記錄,請完成下列步驟。
主題
步驟 1:建立 Amazon S3 儲存貯體
如果您尚未這麼做,請建立 Amazon S3 儲存貯體,讓 Amazon RDS可以上傳 Db2 資料庫稽核日誌檔案RDS的 。下列限制適用於使用為稽核檔案目標的 S3 儲存貯體︰
-
它必須與 RDS的 for Db2 資料庫執行個體 AWS 區域 位於相同的 中。
-
它不可以開放給大眾使用。
-
儲存貯體擁有者也必須是 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的 。
-
適用於您 AWS Key Management Service (AWS KMS) 金鑰ARN的 ,如果您的儲存貯體使用 SSE-KMS 加密。
建立包含下列許可IAM的政策:
"s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:ListAllMyBuckets"
注意
Amazon RDS需要在內部執行 s3:ListAllMyBuckets
動作,以確認相同的 同時 AWS 帳戶 擁有 S3 儲存貯體和RDS適用於 Db2 資料庫執行個體的 。
如果您的儲存貯體使用 SSE-KMS 加密,也包含下列許可:
"kms:GenerateDataKey", "kms:Decrypt"
您可以使用 AWS Management Console 或 () AWS Command Line Interface 建立IAM政策AWS CLI。
建立IAM政策以允許 Amazon 存取您的 Amazon S3 儲存貯RDS體
登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇政策。
-
選擇建立政策,然後選擇 JSON。
-
在新增動作中,依 S3 篩選。新增存取 ListBucket、 GetBucketAcl和 GetBucketLocation。
-
針對新增資源,選擇新增。針對資源類型,選擇儲存貯體,然後輸入儲存貯體的名稱。然後,選擇新增資源。
-
選擇新增陳述式。
-
在新增動作中,依 S3 篩選。新增存取 PutObject、 ListMultipartUploadParts和 AbortMultipartUpload。
-
對於新增資源,選擇新增。針對資源類型,選擇 物件,然後輸入
your bucket name/*
。然後,選擇新增資源。 -
選擇新增陳述式。
-
在新增動作中,依 S3 篩選。新增存取 ListAllMyBuckets。
-
針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後選擇新增資源。
-
如果您使用自己的KMS金鑰來加密資料:
-
選擇新增陳述式。
-
在新增動作中,依 篩選KMS。新增存取GenerateDataKey和解密。
-
針對新增資源,選擇新增。針對資源類型,選擇所有資源。然後選擇新增資源。
-
-
選擇 Next (下一步)。
-
針對政策名稱,輸入此政策的名稱。
-
(選用) 針對描述,輸入此政策的描述。
-
選擇 建立政策。
建立IAM政策以允許 Amazon 存取您的 Amazon S3 儲存貯RDS體
-
執行 create-policy 命令。在下列範例中,
amzn-s3-demo-bucket
將iam_policy_name
和 取代為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 並在 開啟IAM主控台https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇 Roles (角色)。
-
選擇 Create Role (建立角色)。
-
針對信任的實體類型,選取 AWS 服務。
-
針對服務或使用案例,選取 RDS,然後選取 RDS – 將角色新增至資料庫。
-
選擇 Next (下一步)。
-
針對許可政策,搜尋並選取IAM您建立的政策名稱。
-
選擇 Next (下一步)。
-
在 Role name (角色名稱) 中,輸入角色名稱。
-
(選用) 在 Description (說明) 中,輸入新角色的說明。
-
選擇建立角色。
建立角色並將IAM政策連接至該IAM角色
-
執行 create-role 命令。在下列範例中,
iam_role_name
將 取代為IAM角色的名稱。用於 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
將 取代為您在 中建立ARNIAM的政策的 步驟 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 的 Db2 資料庫執行個體程序如下:
-
建立新的選項群組,或是複製或修改現有選項群組。
-
新增和設定所有必要的選項。
-
將選項群組與資料庫執行個體建立關聯。
新增 Db2 稽核記錄選項後,您不需要重新啟動資料庫執行個體。只要選項群組處於作用中狀態,您就可以建立稽核,並將稽核日誌儲存於 S3 儲存貯體。
在資料庫執行個體的選項群組上新增和設定 Db2 稽核記錄
-
選擇下列其中一項:
-
使用現有的選項群組。
-
建立自訂資料庫選項群組,並使用該選項群組。如需詳細資訊,請參閱建立選項群組。
-
-
將 DB2_AUDIT 選項新增至選項群組,並設定選項設定。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
對於 IAM_ROLE_ARN,輸入您在 中建立ARNIAM的角色的 步驟 3:建立IAM角色並連接您的IAM政策。
-
對於 S3_BUCKET_ARN,輸入要用於 Db2 稽核日誌ARN的 S3 儲存貯體的 。儲存貯體必須與 RDS for Db2 資料庫執行個體位於相同的區域。與您輸入IAM的角色相關聯的政策必須允許對此資源進行必要的操作。
-
-
將選項群組套用至新的或現有的資料庫執行個體。選擇下列其中一項:
-
如果您建立了新的資料庫執行個體,在啟動執行個體時套用選項群組。
-
針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
-
步驟 5:設定稽核政策
若要為 RDS for Db2 資料庫設定稽核政策,rdsadmin
請使用 RDS for Db2 資料庫執行個體的主使用者名稱和主密碼連線至資料庫。然後,使用資料庫的資料庫名稱和適用的參數值呼叫rdsadmin.configure_db_audit
預存程序。
下列範例會連線至資料庫,並使用testdb
類別 AUDIT、CHECKING、、OBJMAINTSECMAINT、 SYSADMIN和 設定 的稽核政策VALIDATE。狀態值會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適用於 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 稽核政策
若要修改 Db2 資料庫特定 RDS的稽核政策,請執行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適用於 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 主控台的範例螢幕擷取畫面顯示 Db2 資料庫執行個體層級日誌檔案RDS的 資料夾清單。

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

故障診斷 Db2 稽核記錄
使用下列資訊對 Db2 稽核記錄的常見問題進行故障診斷。
無法設定稽核政策
如果呼叫預存程序rdsadmin.configure_db_audit
傳回錯誤,則使用 DB2_AUDIT
選項的選項群組可能與RDS適用於 Db2 資料庫執行個體的 沒有關聯。修改資料庫執行個體以新增選項群組,然後再次嘗試呼叫預存程序。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
Amazon S3 儲存貯體中沒有資料
如果 Amazon S3 儲存貯體缺少記錄資料,請檢查下列項目:
您可以連線至資料庫並執行 SQL陳述式,以檢查稽核記錄組態的任務狀態。如需詳細資訊,請參閱檢查稽核組態。
您也可以檢查事件,進一步了解日誌可能遺失的原因。如需如何檢視事件的資訊,請參閱 在 Amazon RDS 主控台中檢視日誌、事件和串流。