Db2 稽核記錄 - Amazon Relational Database Service

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

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

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

  3. 選擇 [建立原則],然後選擇JSON

  4. 新增動作中,依 S3 篩選。新增存取權ListBucketGetBucketAcl、和GetBucketLocation

  5. 對於 [新增資源],選擇 [新增]。針對資源類型,選擇值區,然後輸入值區的名稱。然後,選擇添加資源

  6. 選擇 [新增陳述式]。

  7. 新增動作中,依 S3 篩選。新增存取權PutObjectListMultipartUploadParts、和AbortMultipartUpload

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

  9. 選擇 [新增陳述式]。

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

  11. 對於 [新增資源],選擇 [新增]。對於資源類型,選擇所有資源。然後,選擇添加資源

  12. 如果您使用自己的密KMS鑰來加密數據:

    1. 選擇 [新增陳述式]。

    2. [新增動作] 中,篩選依據KMS。添加訪問權限GenerateDataKey解密

    3. 對於 [新增資源],選擇 [新增]。對於資源類型,選擇所有資源。然後,選擇添加資源

  13. 選擇 Next (下一步)

  14. 策略名稱中,輸入此策略的名稱。

  15. (選擇性) 在說明中,輸入此原則的說明。

  16. 選擇 建立政策

建立允許 Amazon 訪問您的 Amazon RDS S3 儲存貯體的IAM政策
  1. 執行 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": [ "*" ] } ] }'
  2. 建立策略之後,請記下策略ARN的內容。你需要ARN的步驟 3:建立IAM角色並附加IAM原則.

如需有關建立IAM策略的資訊,請參閱《IAM使用指南》中的〈建立IAM策略〉。

步驟 3:建立IAM角色並附加IAM原則

此步驟假設您已在中建立IAM原則步驟 2:建立IAM策略。在此步驟中,您會為 Db2 DB 執行個RDS體建立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角色的名稱。

    對於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" } ] }'
  2. 建立角色之後,請注意此角色ARN的內容。你需要這ARN個下一步,步驟 4:設定 Db2 稽核記錄的選項群組.

  3. 執行 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-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 稽核記錄選項新增至 Db2 資料庫執RDS行個體的程序如下:

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

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

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

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

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

    • 使用現有的選項群組。

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

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

    • 對於 IAM_ ROLE _ ARN,請輸入ARN您在中建立的IAM角色步驟 3:建立IAM角色並附加IAM原則

    • 對於 S3 BUCKET _ ARN,請輸入要用於 Db2 稽核日誌ARN的 S3 儲存貯體。儲存貯體必須與 Db2 DB 執行個體所在RDS的區域相同。與您輸入的IAM角色相關聯的策略必須允許對此資源執行必要的作業。

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

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

    • 針對現有的資料庫執行個體,可以修改執行個體,並附加新的選項群組,以套用選項群組。如需詳細資訊,請參閱修改 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 using master_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

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

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

疑難排解 Db2 稽核記錄

使用下列資訊來疑難排解 Db2 稽核記錄的常見問題。

無法設定稽核策略

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

Amazon S3 存儲桶中沒有數據

如果 Amazon S3 儲存貯體遺失記錄資料,請檢查下列各項:

  • Amazon S3 儲存貯體與您的 Db2 資料庫執行個體所在RDS的區域相同。

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

  • 與 Db2 資料庫執行個體相關聯的選項群組中的IAM_ROLE_ARNRDS和S3_BUCKET_ARN選項設定是正確的。ARNs如需詳細資訊,請參閱設定選項群組

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

您也可以檢查事件,進一步瞭解可能遺失記錄檔的原因。若要取得有關如何檢視事件的資訊,請參閱在 Amazon RDS 主控台中檢視日誌、事件和串流