Db2 稽核記錄 - Amazon Relational Database Service

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

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體
  1. 登入 AWS Management Console 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

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

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

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

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

  6. 選擇新增陳述式

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

  8. 對於新增資源,選擇新增。針對資源類型,選擇 物件,然後輸入 your bucket name/*。然後,選擇新增資源

  9. 選擇新增陳述式

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

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

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

    1. 選擇新增陳述式

    2. 新增動作中,依 篩選KMS。新增存取GenerateDataKey解密

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

  13. 選擇 Next (下一步)

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

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

  16. 選擇 建立政策

建立IAM政策以允許 Amazon 存取您的 Amazon S3 儲存貯RDS體
  1. 執行 create-policy 命令。在下列範例中,amzn-s3-demo-bucketiam_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": [ "*" ] } ] }'
  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 並在 開啟IAM主控台https://console.aws.amazon.com/iam/

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

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

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

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

  6. 選擇 Next (下一步)

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

  8. 選擇 Next (下一步)

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

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

  11. 選擇建立角色

建立角色並將IAM政策連接至該IAM角色
  1. 執行 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" } ] }'
  2. 建立角色之後,請注意此角色ARN的 。您需要此項目ARN才能進行下一個步驟:步驟 4:設定 Db2 稽核記錄的選項群組

  3. 執行 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-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 的 Db2 資料庫執行個體程序如下:

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

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

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

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

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

    • 使用現有的選項群組。

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

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

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

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

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

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

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

步驟 5:設定稽核政策

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

下列範例會連線至資料庫,並使用testdb類別 AUDIT、CHECKING、、OBJMAINTSECMAINT、 SYSADMIN和 設定 的稽核政策VALIDATE。狀態值會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適用於 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_ARNIAM_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 主控台,顯示 Db2 資料庫執行個體層級日誌檔案RDS的 資料夾清單。

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

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

故障診斷 Db2 稽核記錄

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

無法設定稽核政策

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

Amazon S3 儲存貯體中沒有資料

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

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

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

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

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

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