本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Db2 稽核記錄
透過 Db2 稽核記錄,Amazon 會RDS記錄資料庫活動,包括登入資料庫的使用者以及針對資料庫執行的查詢。RDS使用您提供的 AWS Identity and Access Management (IAM) 角色,將完成的稽核日誌上傳到 Amazon S3 儲存貯體。
設定 Db2 稽核記錄
若要啟用 Amazon RDS for Db2 資料庫的稽核記錄,請在 Db2 資料庫執行個體上RDS啟用DB2_AUDIT
選項。然後,設定稽核策略以啟用特定資料庫的功能。若要啟用 Db2 DB 執行個體的選項,RDS請設定選項的選項設定DB2_AUDIT
。您可以透過為 Amazon Amazon S3 存貯體提供 Amazon 資源名稱 (ARNs) 以及具有存取儲存貯體許可的IAM角色來達到此目的。
若要為 Db2 資料庫設定 Db2 稽核記錄,請完成下列步驟。RDS
步驟 1:建立 Amazon S3 儲存貯體
如果您尚未這麼做,請建立 Amazon S3 儲存貯體,讓 Amazon RDS 可以在其中上傳您RDS的 Db2 資料庫的稽核日誌檔案。下列限制適用於使用為稽核檔案目標的 S3 儲存貯體︰
-
它必須與您RDS的 Db2 資料庫執行個體相同 AWS 區域 。
-
它不可以開放給大眾使用。
-
它不能使用 S3 物件鎖定。
-
值區擁有者也必須是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 資源名稱(ARN)。完成後續步驟需要此資訊。
步驟 2:建立IAM策略
建立具有將稽核日誌檔從資料庫執行個體傳輸到 Amazon S3 儲存貯體所需許可的IAM政策。此步驟假設您有 S3 儲存貯體。
建立原則之前,請先收集下列資訊:
-
適ARN合您的桶。
-
如果您ARN的存儲桶使用SSE-KMS加密,則為您的 AWS Key Management Service (AWS KMS)密鑰。
建立包含下列權限的IAM策略:
"s3:ListBucket", "s3:GetBucketACL", "s3:GetBucketLocation", "s3:PutObject", "s3:ListMultipartUploadParts", "s3:AbortMultipartUpload", "s3:ListAllMyBuckets"
注意
Amazon RDS 需要內部s3:ListAllMyBuckets
採取動作,以驗證是否同時 AWS 帳戶 擁有 S3 儲存貯體和 Db2 RDS 資料庫執行個體。
如果您的儲存貯體使用SSE-KMS加密功能,請同時包含下列權限:
"kms:GenerateDataKey", "kms:Decrypt"
您可以使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI) 來建立IAM策略。
建立允許 Amazon 訪問您的 Amazon RDS S3 儲存貯體的IAM政策
登入 AWS Management Console 並開啟IAM主控台,位於https://console.aws.amazon.com/iam/
。 -
在導覽窗格中,選擇政策。
-
選擇 [建立原則],然後選擇JSON。
-
在新增動作中,依 S3 篩選。新增存取權ListBucketGetBucketAcl、和GetBucketLocation。
-
對於 [新增資源],選擇 [新增]。針對資源類型,選擇值區,然後輸入值區的名稱。然後,選擇添加資源。
-
選擇 [新增陳述式]。
-
在新增動作中,依 S3 篩選。新增存取權PutObjectListMultipartUploadParts、和AbortMultipartUpload。
-
對於 [新增資源],選擇 [新增]。對於資源類型,請選擇物件,然後輸入
your bucket name/*
。 然後,選擇添加資源。 -
選擇 [新增陳述式]。
-
在新增動作中,依 S3 篩選。新增存取權ListAllMyBuckets。
-
對於 [新增資源],選擇 [新增]。對於資源類型,選擇所有資源。然後,選擇添加資源。
-
如果您使用自己的密KMS鑰來加密數據:
選擇 [新增陳述式]。
在 [新增動作] 中,篩選依據KMS。添加訪問權限GenerateDataKey和解密。
對於 [新增資源],選擇 [新增]。對於資源類型,選擇所有資源。然後,選擇添加資源。
-
選擇 Next (下一步)。
-
在策略名稱中,輸入此策略的名稱。
-
(選擇性) 在說明中,輸入此原則的說明。
-
選擇 建立政策。
建立允許 Amazon 訪問您的 Amazon RDS S3 儲存貯體的IAM政策
-
執行 create-policy 命令。在下列範例中,取代
iam_policy_name
以及amzn-s3-demo-bucket
使用您的IAM政策名稱和目標 Amazon S3 儲存貯體的名稱。對於LinuxmacOS、或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策略。在此步驟中,您會為 Db2 DB 執行個RDS體建立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角色的名稱。對於LinuxmacOS、或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
使用ARN您在中建立的IAM策略步驟 2:建立IAM策略。Replace (取代)iam_role_name
使用您剛剛創建的IAM角色的名稱。對於LinuxmacOS、或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 稽核記錄選項新增至 Db2 資料庫執RDS行個體的程序如下:
-
建立新的選項群組,或是複製或修改現有選項群組。
-
新增和設定所有必要的選項。
-
將選項群組與資料庫執行個體建立關聯。
新增 Db2 稽核記錄選項後,您不需要重新啟動資料庫執行個體。只要選項群組處於作用中狀態,您就可以建立稽核,並將稽核日誌儲存於 S3 儲存貯體。
在資料庫執行個體的選項群組上新增和設定 Db2 稽核記錄
-
選擇下列其中一項:
-
使用現有的選項群組。
-
建立自訂資料庫選項群組,並使用該選項群組。如需詳細資訊,請參閱建立選項群組。
-
-
將 DB2_ 選AUDIT項新增至選項群組,並設定選項設定。如需新增選項的詳細資訊,請參閱將選項新增至選項群組。
-
對於 IAM_ ROLE _ ARN,請輸入ARN您在中建立的IAM角色步驟 3:建立IAM角色並附加IAM原則。
-
對於 S3 BUCKET _ ARN,請輸入要用於 Db2 稽核日誌ARN的 S3 儲存貯體。儲存貯體必須與 Db2 DB 執行個體所在RDS的區域相同。與您輸入的IAM角色相關聯的策略必須允許對此資源執行必要的作業。
-
-
將選項群組套用至新的或現有的資料庫執行個體。選擇下列其中一項:
-
如果您建立了新的資料庫執行個體,在啟動執行個體時套用選項群組。
-
針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
-
步驟 5:設定稽核策略
若要為您的 Db2 資料庫設定稽核原則,RDS請使用 Db2 DB 執行個體的主要使用者名稱和主要密碼連線至rdsadmin
資料庫。RDS然後,使用數據庫的數據庫名稱和適用的參數值調用rdsadmin.configure_db_audit
存儲過程。
下列範例會連線至資料庫,並testdb
使用類別AUDIT、、CHECKINGOBJMAINTSECMAINT、SYSADMIN和設定稽核策略。VALIDATE狀態值會BOTH
記錄成功和失敗,NORMAL
預設ERROR TYPE
為。如需如何使用此預存程序的詳細資訊,請參閱rdsadmin.configure_db_audit。
db2 "connect to rdsadmin user
master_user
usingmaster_password
" db2 "call rdsadmin.configure_db_audit('testdb
', 'ALL', 'BOTH', ?)"
步驟 6:檢查稽核配置
若要確保您的稽核策略設定正確,請檢查稽核配置的狀態。
若要檢查組態,請使用 Db2 DB 執行個體的主要使用者名稱和主要密碼連線至rdsadmin
資料庫。RDS然後,使用數據庫的數據庫名稱運行以下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 儲存貯體,請執行下列其中一個動作:
修改與 Db2 DB 執行個體連接RDS的目前選項群組 — 將
DB2_AUDIT
選項的S3_BUCKET_ARN
設定更新為指向新值區。此外,請務必更新附加至連結的選項群組中IAM_ROLE_ARN
設定所指定之IAM角色的IAM原則。此IAM原則必須為您的新值區提供必要的存取權限。如需有關IAM策略中所需權限的資訊,請參閱建立IAM策略。將RDS適用於 Db2 DB 執行個體附加至不同的選項群組 — 修改資料庫執行個體以變更附加的選項群組。請確定使用正確的
S3_BUCKET_ARN
和設定來IAM_ROLE_ARN
設定新選項群組。如需有關如何為DB2_AUDIT
選項設定這些設定的資訊,請參閱設定選項群組。
修改選項群組時,請務必立即套用變更。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
停用 Db2 稽核記錄
若要停用 Db2 稽核記錄,請執行下列其中一個動作:
停用 Db2 資料庫執行個體RDS的稽核記錄 — 修改您的資料庫執行個體,並使用選項從中移除
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 會自動將 Db2 資料庫執行個體的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 S3 主控台的螢幕擷取RDS畫面範例顯示 Db2 資料庫執行個體層級日誌檔的資料夾清單。
下列 Amazon S3 主控台的螢幕擷取畫面範例顯示 Db2 資料庫執行個體的RDS資料庫層級日誌檔。
疑難排解 Db2 稽核記錄
使用下列資訊來疑難排解 Db2 稽核記錄的常見問題。
無法設定稽核策略
如果呼叫預存程序rdsadmin.configure_db_audit
傳回錯誤,可能是具有選項的選DB2_AUDIT
項群組與 RDS for Db2 DB 執行個體沒有關聯。修改資料庫執行個體以新增選項群組,然後嘗試再次呼叫預存程序。如需詳細資訊,請參閱修改 Amazon RDS 資料庫執行個體。
Amazon S3 存儲桶中沒有數據
如果 Amazon S3 儲存貯體遺失記錄資料,請檢查下列各項:
您可以連線至資料庫並執行SQL陳述式,以檢查稽核記錄組態的工作狀態。如需詳細資訊,請參閱檢查稽核配置。
您也可以檢查事件,進一步瞭解可能遺失記錄檔的原因。若要取得有關如何檢視事件的資訊,請參閱在 Amazon RDS 主控台中檢視日誌、事件和串流。