配置審計日誌記錄

請注意

這個功能是可用的保費計劃及以上

磚提供審計日誌由磚用戶執行的活動,讓你的企業監控詳細數據磚使用模式。

有兩種類型的日誌:

  • 工作與工作空間層事件審計日誌。

  • 帳戶級別與帳戶級別事件審計日誌。

的每一種類型的事件和相關的服務,看到的審計事件

配置詳細審計日誌

除了違約事件,您可以配置一個工作區產生額外的事件通過啟用詳細審計日誌

啟用詳細審計日誌,您的帳戶和工作區必須在E2版本的平台上。Beplay体育安卓版本確認您所使用的版本的平台,聯係你的磚的代表。Beplay体育安卓版本

啟用或禁用詳細審計日誌

  1. 作為一個管理員,磚管理控製台

  2. 點擊工作空間設置

  3. 旁邊詳細審計日誌啟用或禁用該功能。

當您啟用或禁用詳細日誌記錄,一個可審計的事件類別工作空間用行動workspaceConfKeys。的workspaceConfKeys請求參數是enableVerboseAuditLogs。請求參數workspaceConfValues真正的(功能啟用)或(功能禁用)。

附加詳細的筆記本行動

額外的詳細行動審計日誌類別筆記本:

行動

描述

請求參數

runCommand

發出磚後運行一個命令在一個筆記本上。一個命令對應於一個細胞一個筆記本。

[" notebookId”、“executionTime”、“地位”、“commandId”,“commandText”)

額外的詳細數據磚SQL操作

額外的操作審計日誌類別中databrickssql:

行動

描述

請求參數

commandSubmit

提交一個命令時磚SQL運行。

[" commandText”、“warehouseId”、“commandId”)

commandFinish

運行一個命令完成後或命令取消了。

[" warehouseId”、“commandId”)

檢查響應領域相關的附加信息的命令結果:

  • statusCodeHTTP響應代碼。這將是錯誤400,如果是一般的錯誤。

    • errorMessage——錯誤消息。在某些情況下對某些長期運行的命令,errorMessage字段可能不填充失敗。

    • 結果:這個字段是空的

配置審計日誌交付

磚賬戶所有者(或賬戶管理,如果你是在一個E2帳戶),您可以配置低延遲交付的JSON文件格式的審計日誌AWS S3存儲桶中,在那裏你可以使可用的數據使用情況分析。磚為每個工作空間提供一個單獨的JSON文件在您的帳戶和一個單獨的文件戶頭級別的事件。

初始設置後或其他日誌配置更改交貨,預計推遲一個小時直到更改生效。日誌記錄交付開始後,可審計的事件通常在15分鍾內記錄。文件命名,交付規則和模式,明白了審計交付細節和格式

審計日誌的API來配置低延遲交付賬戶API 2.0,這是相同的API用於配置計費使用日誌交付

你可以提供日誌一個AWS帳戶以外的其他帳戶用於創建日誌交付我的角色。這允許靈活性,例如從多個AWS帳戶設置工作區提供同樣的S3 bucket。這個選項需要配置一個S3 bucket政策,引用一個cross-account我的角色。指令和策略是本文中提供的模板。

取決於你如何訪問日誌設置S3 bucket。磚提供日誌與AWS的內置S3 bucketBucketOwnerFullControl ACL罐頭所以賬戶所有者和委派可以直接下載日誌。支持桶所有權為新創建的對象,您必須設置你的桶S3對象所有權設置的值桶業主首選

重要的

如果你設置你的桶S3對象所有權設置為對象的作家新對象,如仍屬於你的日誌上傳賬戶,這是默認情況下我指定角色創建和訪問你的桶。這可能很難訪問日誌,因為你無法訪問它們的AWS控製台或自動化工具,你用作為桶所有者身份驗證。

磚建議你複習安全最佳實踐為S3為指導保護桶中的數據免受不必要的訪問。

配置選項

配置審計日誌,你有以下選項。

  • 如果你有一個工作在你的磚賬戶,按照說明的小節中,創建一個配置對象的常見配置您的工作區。

  • 如果您有多個工作區在同一個磚帳戶,你能做下列:

    • 共享相同的配置(日誌交付S3 bucket和我角色)所有工作區帳戶。這是唯一的配置選項,還提供帳戶級別審計日誌。這是默認選項。

    • 使用單獨的帳戶配置為每個工作區。

    • 使用單獨的配置不同組的工作空間,每個共享配置。

  • 如果你有多個工作區,每個關聯到一個單獨的磚帳戶,您必須為每個帳戶創建獨特的存儲和證書配置對象,但是您可以重用一個S3 bucket或我這些配置對象之間的作用。

請注意

即使您使用賬戶API配置日誌,您可以為任何工作區配置日誌交付,包括工作空間沒有使用帳戶創建的API。

高級流

高級審計日誌交付的流動:

  1. 配置存儲:在AWS,創建一個新的AWS S3 bucket。使用磚API, API調用帳戶創建一個存儲配置對象,使用bucket名稱。

    請注意

    提供日誌一個AWS帳戶以外的賬戶用於日誌交付我創建的角色,您需要添加一個S3 bucket的政策。你不添加政策在這一步。

  2. 配置的憑證:在AWS,創建合適的AWS我的角色。使用磚API, API調用帳戶創建一個憑證配置對象,使用我的角色的攻擊。角色策略可以指定一個路徑前綴日誌交付S3 bucket中。你可以選擇來定義我的角色包括多個路徑前綴如果你想記錄交付配置不同的工作區分享S3 bucket,但使用不同的路徑前綴。

  3. 可選cross-account支持提供日誌的AWS帳戶以外的帳戶我的角色創建日誌交付時,添加一個S3 bucket的政策。這個策略引用id cross-account我您在前麵步驟中創建的角色。

  4. 調用日誌API:調用API來創建一個日誌傳送配置,使用憑證和存儲配置對象從以前的步驟。這個步驟允許您指定如果你想把所有工作空間的日誌傳送配置在您的帳戶(當前和未來的工作空間)或一組特定的工作區。帳戶級別事件的列表,請參閱審計事件

在完成這些步驟之後,您可以訪問JSON文件。交貨地點是:

- - - - - -的名字> / <交付- - - - - -路徑- - - - - -前綴> /workspaceId= <workspaceId> /日期= <yyyy- - - - - -毫米- - - - - -dd> /auditlogs_<內部- - - - - -id>。json

如果您配置的審計日誌交付整個帳戶,帳戶級別審計事件不與任何一個工作區送達有關workspaceId = 0分區。

新的JSON文件交付每隔幾分鍾,可能為每個工作區覆蓋現有的文件。最初設立審計日誌交付時,它需要一個小時日誌開始交付。審計日誌後開始交貨,可審計的事件通常在15分鍾內記錄。額外的配置更改生效一般需要一個小時。

關於訪問這些文件的更多信息和分析他們使用磚,明白了分析審計日誌

重要的

有一個限製可用日誌配置交付的數量每個賬戶(每個限製分別適用於每個日誌類型包括計費使用和審計日誌)。您可以創建最多兩個戶頭級別啟用交付配置每個類型(沒有工作區配置過濾器)。此外,您可以創建並啟用兩個工作區水平交付每工作區配置每個日誌類型,這意味著相同的工作區ID可以出現在工作區中過濾不超過兩個交付配置每個日誌類型。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

需求

  • 賬戶所有者(或帳戶管理,如果你在一個E2帳戶)的電子郵件地址和密碼進行身份驗證的api。電子郵件地址和密碼都是區分大小寫的。

  • 賬戶的賬戶ID。E2版本的平台,讓你的帳戶IDBeplay体育安卓版本管理您的帳戶使用帳戶控製台non-E2賬戶,得到從你的帳戶ID使用選項卡概述。聯係你的磚代表如果你不能找到你的帳戶ID。

api如何驗證

本文中描述的api上發表accounts.cloud.m.eheci.com所有AWS基礎端點區域部署。

使用下麵的基URL API請求:https://accounts.cloud.m.eheci.com/api/2.0/

該REST API需要HTTP基本身份驗證,包括設置HTTP頭授權。在這篇文章中,用戶名是指你的帳戶所有者(或賬戶管理,如果你是在一個E2帳戶)的電子郵件地址。電子郵件地址是區分大小寫的。有幾種方法可以為工具,如旋度提供您的憑據。

  • 通過用戶名和帳號密碼分別在每個請求的頭<用戶名>:<密碼>語法。

    例如:

    curl - x - u得到<用戶名>:<密碼>- h“application / json內容類型:\“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ <帳戶id > / <端點>”
  • base64編碼應用到你的<用戶名>:<密碼>字符串,並提供直接的HTTP頭:

    curl - x - h得到“application / json內容類型:\- h“基本授權:< base64-username-pw >”“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ <帳戶id > / <端點>”
  • 創建一個. netrc文件,,登錄,密碼屬性:

    機器accounts.cloud.m.eheci.com登錄<用戶名>密碼<密碼>

    來調用. netrc文件,使用- n在你的旋度命令:

    curl - n - x得到“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ <帳戶id > /工作區”

    本文的示例使用這種身份驗證方式。

完整的API參考,請參閱賬戶API 2.0

步驟1:配置存儲

磚提供日誌的S3 bucket您的帳戶。您可以配置多個工作區使用一個S3 bucket,或者您可以定義不同的工作區(或工作區組)使用不同的桶。

這個過程描述了如何設置一個配置對象與一個共同的賬戶配置一個或多個工作區。使用不同的存儲位置不同的工作區,對每個工作區重複本文中的程序或一組工作區。

  1. 創建S3 bucket,下麵的指令AWS存儲配置

    重要的

    提供日誌另一個AWS帳戶用於磚工作區,您必須添加一個S3 bucket的政策。你不添加桶政策在這一步。看到步驟3:可選cross-account支持

  2. 創建一個代表你的磚存儲配置記錄新的S3 bucket。指定您的S3 bucket通過調用創建新存儲配置API(帖子/賬戶/ <帳戶id > /存儲配置)。

    通過以下幾點:

    • storage_configuration_name:新的獨特的存儲配置名稱。

    • root_bucket_info:一個包含一個JSON對象bucket_name字段包含您的S3 bucket名稱。

    複製storage_configuration_id在響應中返回值。您將使用它來創建日誌傳送配置在後麵的步驟。

    例如:

    curl - x - n後\“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ < databricks-account-id > /存儲配置”\- d”{:“storage_configuration_name databricks-workspace-storageconf-v1”," root_bucket_info ": {:“bucket_name my-company-example-bucket”}}'

    回應:

    {“storage_configuration_id”:“< databricks-storage-config-id >”,“account_id”:“< databricks-account-id >”,“root_bucket_info”:{“bucket_name”:“my-company-example-bucket”},“storage_configuration_name”:“databricks-workspace-storageconf-v1”,“creation_time”:1579754875555}

步驟2:配置憑證

這個過程描述了如何設置一個配置對象與一個共同的賬戶配置一個或多個工作區。為不同的工作區使用不同的憑證,對每個工作區重複本文中的程序或一組工作區。

請注意

使用不同的S3 bucket名稱,您需要創建單獨的我的角色。

  1. 登錄你的AWS控製台作為用戶與管理員權限和去服務。

  2. 單擊角色在側邊欄選項卡。

  3. 點擊創建角色

    1. 選擇類型的信任的實體,點擊AWS服務

    2. 常見用例,點擊EC2

    3. 單擊下一個:權限按鈕。

    4. 單擊下一個:標簽按鈕。

    5. 單擊下一個:審查按鈕。

    6. 角色名字段中,輸入角色名稱。

      角色名
    7. 點擊創建角色。角色的列表顯示。

  4. 在角色列表中,點擊創建的角色。

  5. 添加一個內嵌的政策。

    1. 的權限選項卡上,單擊添加內嵌策略

      內聯政策
    2. 在策略編輯器中,單擊JSON選項卡。

      JSON編輯器
    3. 複製這個訪問政策和修改它。替換以下值的政策用您自己的配置值:

      • < s3-bucket-name >:你的桶的名字AWS S3 bucket。

      • < s3-bucket-path-prefix >(可選):交貨地點的路徑在S3 bucket。如果未指定的,日誌送到桶的根源。這條路必須匹配delivery_path_prefix爭論時調用日誌API

      {“版本”:“2012-10-17”,“聲明”:【{“效應”:“允許”,“行動”:【“s3: GetBucketLocation”),“資源”:【“攻擊:aws: s3::: < s3-bucket-name >”]},{“效應”:“允許”,“行動”:【“s3: propertynames”,“s3: GetObject”,“s3: DeleteObject”,“s3: PutObjectAcl”,“s3: AbortMultipartUpload”),“資源”:【“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > /”,“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > / *”]},{“效應”:“允許”,“行動”:【“s3: ListBucket”,“s3: ListMultipartUploadParts”,“s3: ListBucketMultipartUploads”),“資源”:“攻擊:aws: s3::: < s3-bucket-name >”,“條件”:{“StringLike”:{“s3:前綴”:【“< s3-bucket-path-prefix >”,“< s3-bucket-path-prefix > / *”]}}}]}

      您可以自定義策略使用的路徑前綴:

      • 如果你不想使用桶路徑前綴,刪除< s3-bucket-path-prefix > /(包括最終削減)的政策似乎每次。

      • 如果你想要記錄交付配置不同的工作區分享S3 bucket,但使用不同的路徑前綴,您可以定義我的角色包括多個路徑前綴。有兩個獨立的部分的政策參考< s3-bucket-path-prefix >。在每種情況下,複製兩個相鄰行引用路徑前綴。重複每一對線為每一個新路徑前綴,例如:

      {“資源”:【“攻擊:aws: s3::: < mybucketname > /現場小組/”,“攻擊:aws: s3::: < mybucketname > /現場小組/ *”,“攻擊:aws: s3::: < mybucketname > /財務團隊/”,“攻擊:aws: s3::: < mybucketname > /財務團隊/ *”]}
    4. 點擊審查政策

    5. 的名字字段中,輸入一個政策的名字。

    6. 點擊創建政策

    7. 如果你使用服務控製策略拒絕某些行為在AWS帳戶級別,確保sts: AssumeRole是白名單數據磚可以假設cross-account角色。

  6. 在角色總結頁麵,點擊信任關係選項卡。

  7. 這種訪問政策粘貼到編輯器和策略中以下值替換為您自己的配置值:

    < databricks-account-id >——你的磚帳戶ID。

    {“版本”:“2012-10-17”,“聲明”:【{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::414351767826:角色/ SaasUsageDeliveryRole-prod-IAMRole-3PLHICCRR1TK”},“行動”:“sts: AssumeRole”,“條件”:{“StringEquals”:{“sts: ExternalId”:【“< databricks-account-id >”]}}}]}
  8. 在總結作用,複製的角色是並將其保存為以後的步驟。

    的角色是
  9. 為你創建一個磚憑證的配置ID AWS的角色。調用創建證書配置API(帖子/賬戶/ <帳戶id > /憑證)。這個請求建立cross-account信任和返回一個引用ID來使用,當你創建一個新的工作區。

    取代<帳戶id >你的磚帳戶ID。請求主體:

    • credentials_name在你的賬戶名稱是獨一無二的。

    • aws_credentials一個對象,該對象包含一個sts_role財產。該對象必須指定role_arn您已經創建了角色。

    身體將包括的響應credentials_id領域,磚憑證的配置ID,您需要創建一個新的工作區。複製這一領域,因此您可以使用它來創建日誌傳送配置在後麵的步驟。

    例如:

    curl - x - n後\“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ < databricks-account-id > /憑證”\- d”{:“credentials_name databricks-credentials-v1”," aws_credentials ": {" sts_role ": {:“role_arn攻擊:aws:我::< aws-account-id >: / my-company-example-role”角色}}}'

    示例響應:

    {“credentials_id”:“< databricks-credentials-id >”,“account_id”:“< databricks-account-id >”,“aws_credentials”:{“sts_role”:{“role_arn”:“攻擊:aws:我::< aws-account-id >: / my-company-example-role”角色,“external_id”:“< databricks-account-id >”}},“credentials_name”:“databricks-credentials-v1”,“creation_time”:1579753556257}

    複製credentials_id場的響應,供以後使用。

步驟3:可選cross-account支持

如果你的S3 bucket是在同一個AWS帳戶作為我的角色用於日誌交付,跳過這個步驟。

提供日誌另一個AWS帳戶用於磚工作區,您必須添加一個S3 bucket政策,在這個步驟中提供。這個策略引用id cross-account我您在前麵步驟中創建的角色。

  1. 在AWS控製台中,S3服務。

  2. 單擊桶的名字。

  3. 單擊權限選項卡。

  4. 單擊桶的政策按鈕。

    桶政策按鈕
  5. 複製和修改這個桶的政策。

    取代< s3-bucket-name >S3 bucket名稱。取代< customer-iam-role-id >與你的角色ID創建我的角色。取代< s3-bucket-path-prefix >與你想要桶路徑前綴。看到後指出政策樣本信息自定義路徑前綴。

    {“版本”:“2012-10-17”,“聲明”:({“效應”:“允許”,“校長”:{“AWS”:(“攻擊:aws:我::< customer-iam-role-id >”]},“行動”:“s3: GetBucketLocation”,“資源”:“攻擊:aws: s3::: < s3-bucket-name >”},{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::< customer-iam-role-id >”},“行動”:(“s3: propertynames”,“s3: GetObject”,“s3: DeleteObject”,“s3: PutObjectAcl”,“s3: AbortMultipartUpload”,“s3: ListMultipartUploadParts”),“資源”:(“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > /”,“攻擊:aws: s3::: < s3-bucket-name > / < s3-bucket-path-prefix > / *”]},{“效應”:“允許”,“校長”:{“AWS”:“攻擊:aws:我::< customer-iam-role-id >”},“行動”:“s3: ListBucket”,“資源”:“攻擊:aws: s3::: < s3-bucket-name >”,“條件”:{“StringLike”:{“s3:前綴”:(“< s3-bucket-path-prefix >”,“< s3-bucket-path-prefix > / *”]}}}]}

    您可以自定義策略使用的路徑前綴:

    • 如果你不想使用桶路徑前綴,刪除< s3-bucket-path-prefix > /(包括最終削減)的政策似乎每次。

    • 如果你想要記錄交付配置共享相同的S3 bucket多個工作區,但使用不同的路徑前綴,您可以定義我的角色包括多個路徑前綴。兩部分的政策參考< s3-bucket-path-prefix >。在每一個地方,複製兩個相鄰行引用路徑前綴。重複每一對線為每個新路徑前綴。例如:

      {“資源”:【“攻擊:aws: s3::: < mybucketname > /現場小組/”,“攻擊:aws: s3::: < mybucketname > /現場小組/ *”,“攻擊:aws: s3::: < mybucketname > /財務團隊/”,“攻擊:aws: s3::: < mybucketname > /財務團隊/ *”]}

第四步:調用日誌API

配置日誌交付,調用日誌傳送配置API(帖子/賬戶/ <帳戶id > /日誌交付)。

你需要以下值複製在前麵的步驟:

  • credentials_id:你的磚憑據的配置ID,這代表你cross-account憑證作用。

  • storage_configuration_id:你的磚存儲配置ID,代表您的根S3 bucket。

還設置以下字段:

  • log_type:總是設置為AUDIT_LOGS

  • output_format:總是設置為JSON。的模式,看看審計日誌模式

  • delivery_path_prefix(可選):將路徑前綴。這必須匹配路徑前綴用於你的角色的政策。傳遞路徑< bucket名> / < delivery-path-prefix > / workspaceId = < workspaceId > /日期= < yyyy-mm-dd > / auditlogs_ <內部id > . json。如果您配置的審計日誌交付整個帳戶,帳戶級別審計事件不與任何一個工作區送達有關workspaceId = 0分區。

  • workspace_ids_filter(可選):將一個數組的工作區IDs日誌你想交付。默認情況下,工作區篩選字段是空的,日誌交付應用在賬戶層麵,交付工作日誌為所有工作空間在您的帳戶,加上戶頭級別的日誌。你可以設置這個字段的數組空間id(每一個是一個int64日誌交付應當適用),在這種情況下,隻有工作日誌與指定的工作區。帳戶級別事件的列表,請參閱審計事件

    如果你計劃使用不同的日誌交付配置不同的工作區,顯式地設置這個字段。請注意交付配置提到特定工作區不會適用於新的工作區中創建未來,和交付不包括帳戶級別日誌。

    對於某些類型的磚部署的隻有一個工作區/帳戶ID,所以這個領域是不必要的。

重要的

有一個限製可用日誌配置交付的數量每個賬戶(每個限製分別適用於每一個記錄類型,包括計費使用和審計日誌)。您可以創建最多兩個戶頭級別啟用交付配置每個類型(沒有工作區配置過濾器)。此外,您可以創建兩個工作區水平交付啟用每個工作區配置每個日誌類型,這意味著相同的工作區ID可以出現在工作區中過濾不超過兩個交付配置每個日誌類型。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

例如:

curl - x - n後\“https://accounts.cloud.m.eheci.com/api/2.0/accounts/ < databricks-account-id > /日誌交付”\- d”{" log_delivery_configuration ": {:“log_type AUDIT_LOGS”,“config_name”:“審計日誌配置”,:“output_format JSON”,“credentials_id”:“< databricks-credentials-id >”,“storage_configuration_id”:“< databricks-storage-config-id >”,:“delivery_path_prefix auditlogs-data”,“workspace_ids_filter”:(6383650456894062,4102272838062927]}}'

示例響應:

{“log_delivery_configuration”:{“config_id”:“< config-id >”,“config_name”:“審計日誌配置”,“log_type”:“AUDIT_LOGS”,“output_format”:“JSON”,“account_id”:“<帳戶id >”,“credentials_id”:“< databricks-credentials-id >”,“storage_configuration_id”:“< databricks-storage-config-id >”,“workspace_ids_filter”:(6383650456894062,4102272838062927),“delivery_path_prefix”:“auditlogs-data”,“狀態”:“啟用”,“creation_time”:1591638409000,“update_time”:1593108904000,“log_delivery_status”:{“狀態”:“創建”,“消息”:“日誌傳送配置成功創建了。地位將被更新後首次交付嚐試。”}}}

附加功能的日誌api

日誌api交付有附加功能。有關詳細信息,請參閱API參考文檔。

額外的操作包括:

日誌傳送配置狀態可以在API中找到響應的log_delivery_status對象。與log_delivery_status,您可以檢查狀態(成功或失敗)和最後一次嚐試和成功交付。

重要的

有一個限製可用日誌配置交付的數量每個賬戶(每個限製分別適用於每個日誌類型包括計費使用和審計日誌)。您可以創建最多兩個戶頭級別啟用交付配置每個類型(沒有工作區配置過濾器)。此外,您可以創建兩個工作區水平交付啟用每個工作區配置每個日誌類型,這意味著相同的工作區ID可以出現在工作區中過濾不超過兩個交付配置每個日誌類型。你不能刪除日誌傳送配置,但是你可以禁用它。你可以重新啟用禁用配置,但請求失敗,如果違反了先前描述的限製。

審計交付細節和格式

一旦為你的賬戶啟用日誌記錄,磚自動開始發送審計日誌以人類可讀的格式定期交付地點。

  • 延遲:在初始設置或其他配置更改,之前預計一些延遲您的更改生效。審計日誌交付的初始設置,它需要一個小時日誌開始交付。日誌後開始交貨,可審計的事件通常在15分鍾內記錄。額外的配置更改生效一般需要一個小時。

  • 加密:磚使用Amazon S3服務器端加密加密審計日誌。

  • 格式:磚提供JSON格式的審計日誌。

  • 位置:交貨地點< bucket名> / < delivery-path-prefix > / workspaceId = < workspaceId > /日期= < yyyy-mm-dd > / auditlogs_ <內部id > . json。新的JSON文件交付每隔幾分鍾,可能會覆蓋現有的文件。配送路徑定義為配置的一部分。帳戶級別審計事件不與任何一個工作區將會送到workspaceId = 0分區,如果你配置交付整個賬戶的審計日誌。

    • 磚可以覆蓋了日誌文件在你的桶在任何時間。如果一個文件被覆蓋,保持現有的內容,但可能會有額外的線路可審計的事件。

    • 覆蓋確保隻有一次語義不需要讀取或刪除訪問您的帳戶。

審計日誌模式

審計日誌記錄的模式如下。

  • 版本:模式版本的審計日誌格式。

  • 時間戳:UTC時間戳的行動。

  • workspaceId:這個事件與ID的工作空間。可能被設置為“0”帳戶級別事件,適用於任何工作區。

  • sourceIPAddress:源請求的IP地址。

  • userAgent:瀏覽器或API客戶機用於製造要求。

  • sessionId:會話ID的行動。

  • userIdentity:信息用戶的請求。

    • 電子郵件:用戶的電子郵件地址。

  • :登錄請求的服務。

  • actionName:這個動作,比如登錄、注銷、讀、寫,等等。

  • requestId:獨特的請求ID。

  • requestParams:審計事件中使用的參數鍵值對。

  • 響應:對請求的響應。

    • errorMessage如果有一個錯誤:錯誤消息。

    • 結果:請求的結果。

    • statusCode:HTTP狀態碼表示請求成功與否。

  • auditLevel:指定如果這是一個工作空間層事件(WORKSPACE_LEVEL)或帳戶級別事件(ACCOUNT_LEVEL)。

  • accountId:磚的帳戶ID賬戶。

審計事件

actionName在審計日誌記錄屬性識別審計事件。的命名約定磚REST API參考

工作空間層審計日誌可用於這些服務:

  • 賬戶

  • 集群

  • clusterPolicies

  • dbfs

  • 精靈

  • gitCredentials

  • globalInitScripts

  • iamRole

  • instancePools

  • 工作

  • mlflowExperiment

  • 筆記本

  • 回購

  • 秘密

  • serverlessRealTimeInference

  • databrickssql

  • sqlPermissions,所有的審計日誌表訪問表acl時啟用。

  • ssh

  • webTerminal

  • 工作空間

帳戶級別審計日誌可用於這些服務:

  • accountBillableUsage:訪問計費使用的帳戶。

  • logDelivery:如計費使用或日誌傳送配置審計日誌。

  • ssoConfigBackend:單點登錄帳戶的設置。

  • accountsManager:在賬戶控製台中執行的操作。

帳戶級別事件有workspaceId字段設置為一個有效的工作空間ID如果他們參考workspace-related之類的事件創建或刪除一個工作區。如果他們不與任何工作區,workspaceId字段設置為0。帳戶級別審計日誌隻為戶頭級別交付配置有一個空的工作空間濾波器領域(交付所有事件的審計日誌帳戶)。

審計活動注意事項

  • 如果動作需要很長時間,請求和響應分別記錄但請求和響應具有相同requestId

    • 除了mount-related操作,磚不包括DBFS-related操作審計日誌。我們建議您設置在S3服務器訪問日誌記錄,可以記錄對象級別的操作與我相關聯的角色。如果你我的角色映射到磚用戶,磚用戶不能分享我的角色。

    • 自動化操作,如調整集群由於自動定量或啟動工作調度,由用戶執行係統用戶

請求參數

請求參數requestParams列出了每個支持服務和行動在下麵幾節中,按工作空間層事件和帳戶級別分組活動。

requestParams字段是截斷。如果它的JSON表示的大小超過100 KB,值截斷字符串截斷是附加到截斷條目。在極少數情況下,截斷地圖仍大於100 KB,單一截斷鍵和一個空值存在。

工作空間層審計日誌事件

服務

行動

請求參數

賬戶

添加

[" targetUserName”、“端點”、“targetUserId”)

addPrincipalToGroup

[" targetGroupId”、“端點”、“targetUserId”、“targetGroupName”,“targetUserName”)

removePrincipalFromGroup

[" targetGroupId”、“端點”、“targetUserId”、“targetGroupName”,“targetUserName”)

changePassword

[" newPasswordSource”、“targetUserId”、“serviceSource”、“wasPasswordChanged”,“標識”)

createGroup

["端點”、“targetGroupId”、“targetGroupName”)

刪除

[" targetUserId”、“targetUserName”、“端點”)

garbageCollectDbToken

[" tokenExpirationTime”、“標識”)

generateDbToken

(“標識”、“tokenExpirationTime”)

jwtLogin

(“用戶”)

登錄

(“用戶”)

注銷

(“用戶”)

removeAdmin

[" targetUserName”、“端點”、“targetUserId”)

removeGroup

[" targetGroupId”、“targetGroupName”、“端點”)

resetPassword

[" serviceSource”、“用戶名”、“端點”、“targetUserId”,“targetUserName”、“wasPasswordChanged”、“newPasswordSource”)

revokeDbToken

["標識"]

samlLogin

(“用戶”)

setAdmin

["端點”、“targetUserName”、“targetUserId”)

tokenLogin

[" tokenId”、“用戶”)

validateEmail

["端點”、“targetUserName”、“targetUserId”)

集群

changeClusterAcl

[" shardName”、“aclPermissionSet”、“targetUserId”、“resourceId”)

創建

[" cluster_log_conf”、“num_workers”、“enable_elastic_disk”、“driver_node_type_id”,“start_cluster”、“docker_image”、“ssh_public_keys”、“aws_attributes”、“acl_path_prefix”、“node_type_id”、“instance_pool_id”、“spark_env_vars”、“init_scripts”、“spark_version”、“cluster_source”、“autotermination_minutes”、“cluster_name”、“自動定量”、“custom_tags”,“cluster_creator”、“enable_local_disk_encryption”、“idempotency_token”、“spark_conf”、“organization_id”、“no_driver_daemon”、“user_id”)

createResult

[" clusterName”、“clusterState”、“clusterId”、“clusterWorkers”,“clusterOwnerUserId”)

刪除

[" cluster_id "]

deleteResult

[" clusterWorkers”、“clusterState”、“clusterId”、“clusterOwnerUserId”,“clusterName”)

編輯

[" spark_env_vars”、“no_driver_daemon”、“enable_elastic_disk”、“aws_attributes”,“driver_node_type_id”、“custom_tags”、“cluster_name”、“spark_conf”、“ssh_public_keys”、“autotermination_minutes”、“cluster_source”、“docker_image”、“enable_local_disk_encryption”、“cluster_id”、“spark_version”、“自動定量”、“cluster_log_conf”,“instance_pool_id”、“num_workers”、“init_scripts”、“node_type_id”)

permanentDelete

[" cluster_id "]

調整

[" cluster_id”、“num_workers”、“自動定量”)

resizeResult

[" clusterWorkers”、“clusterState”、“clusterId”、“clusterOwnerUserId”,“clusterName”)

重新啟動

[" cluster_id "]

restartResult

[" clusterId”、“clusterState”、“clusterName”、“clusterOwnerUserId”,“clusterWorkers”)

開始

[" init_scripts_safe_mode”、“cluster_id”)

startResult

[" clusterName”、“clusterState”、“clusterWorkers”、“clusterOwnerUserId”,“clusterId”)

clusterPolicies

創建

["名稱")

編輯

[" policy_id”、“名稱”)

刪除

[" policy_id "]

changeClusterPolicyAcl

[" shardName”、“targetUserId”、“resourceId”、“aclPermissionSet”)

dbfs

addBlock

(“處理”、“data_length”)

創建

(“路徑”、“bufferSize”、“覆蓋”)

刪除

(“遞歸”、“路徑”)

getSessionCredentials

(“掛載點”)

mkdir

(“路徑”)

(“掛載點”、“所有者”)

移動

[" dst”、“source_path”、“src”、“destination_path”)

(“路徑”,“覆蓋”)

卸載

(“掛載點”)

精靈

databricksAccess

(“持續時間”、“審批人”,“原因”,“authType”,“用戶”)

gitCredentials

getGitCredential

[" id "]

listGitCredentials

[]

deleteGitCredential

[" id "]

updateGitCredential

[" id "、" git_provider”、“git_username”)

createGitCredential

[" git_provider”、“git_username”)

globalInitScripts

創建

(“名字”、“地位”、“script-SHA256”、“啟用”)

更新

[" script_id”、“名稱”、“地位”、“script-SHA256”,“啟用”)

刪除

[" script_id "]

addPrincipalToGroup

[" user_name”、“parent_name”)

createGroup

[" group_name "]

getGroupMembers

[" group_name "]

removeGroup

[" group_name "]

iamRole

changeIamRoleAcl

[" targetUserId”、“shardName”、“resourceId”、“aclPermissionSet”)

instancePools

changeInstancePoolAcl

[" shardName”、“resourceId”、“targetUserId”、“aclPermissionSet”)

創建

[" enable_elastic_disk”、“preloaded_spark_versions”、“idle_instance_autotermination_minutes”、“instance_pool_name”,“node_type_id”、“custom_tags”、“max_capacity”、“min_idle_instances”、“aws_attributes”)

刪除

[" instance_pool_id "]

編輯

[" instance_pool_name”、“idle_instance_autotermination_minutes”、“min_idle_instances”、“preloaded_spark_versions”,“max_capacity”、“enable_elastic_disk”、“node_type_id”、“instance_pool_id”、“aws_attributes”)

工作

取消

[" run_id "]

cancelAllRuns

[" job_id "]

changeJobAcl

[" shardName”、“aclPermissionSet”、“resourceId”、“targetUserId”)

創建

[" spark_jar_task”、“email_notifications”、“notebook_task”、“spark_submit_task”,“timeout_seconds”、“圖書館”、“名稱”、“spark_python_task”,“job_type”、“new_cluster”、“existing_cluster_id”、“max_retries”,“計劃”)

刪除

[" job_id "]

deleteRun

[" run_id "]

重置

[" job_id”、“new_settings”)

resetJobAcl

(“撥款”、“job_id”)

runFailed

[" jobClusterType”、“jobTriggerType”、“jobId”、“jobTaskType”,“runId”、“jobTerminalState”、“idInJob”、“orgId”)

runNow

[" notebook_params”、“job_id”、“jar_params”、“workflow_context”)

runSucceeded

[" idInJob”、“jobId”、“jobTriggerType”、“orgId”,“runId”、“jobClusterType”、“jobTaskType”、“jobTerminalState”)

setTaskValue

[" run_id”、“關鍵”)

submitRun

[" shell_command_task”、“run_name”、“spark_python_task”、“existing_cluster_id”,“notebook_task”、“timeout_seconds”、“圖書館”、“new_cluster”,“spark_jar_task”)

更新

[" fields_to_remove”、“job_id”、“new_settings”)

mlflowExperiment

deleteMlflowExperiment

[" experimentId”、“路”、“experimentName”)

moveMlflowExperiment

[" newPath”、“experimentId”、“媒介”)

restoreMlflowExperiment

[" experimentId”、“路”、“experimentName”)

mlflowModelRegistry

listModelArtifacts

["名稱”、“版本”、“路徑”,“page_token”)

getModelVersionSignedDownloadUri

["名稱”、“版本”、“路徑”)

createRegisteredModel

(“名字”、“標簽”)

deleteRegisteredModel

["名稱")

renameRegisteredModel

(“名字”,“new_name”)

setRegisteredModelTag

["名稱”、“關鍵”、“價值”)

deleteRegisteredModelTag

(“名字”,“關鍵”)

createModelVersion

["名稱”、“源”、“run_id”,“標簽”,“run_link”)

deleteModelVersion

(“名字”、“版本”)

getModelVersionDownloadUri

(“名字”、“版本”)

setModelVersionTag

[“名稱”,“版本”,“關鍵”、“價值”)

deleteModelVersionTag

["名稱”、“版本”、“關鍵”)

createTransitionRequest

["名稱”、“版本”、“階段”)

deleteTransitionRequest

["名稱”、“版本”、“階段”,“創造者”)

approveTransitionRequest

["名稱”、“版本”、“階段”,“archive_existing_versions”)

rejectTransitionRequest

["名稱”、“版本”、“階段”)

transitionModelVersionStage

["名稱”、“版本”、“階段”,“archive_existing_versions”)

transitionModelVersionStageDatabricks

["名稱”、“版本”、“階段”,“archive_existing_versions”)

createComment

(“名字”、“版本”)

updateComment

[" id "]

deleteComment

[" id "]

筆記本

attachNotebook

(“路徑”、“clusterId”、“notebookId”)

createNotebook

[" notebookId”、“路徑”)

deleteFolder

(“路徑”)

deleteNotebook

[" notebookId”、“notebookName”、“路徑”)

detachNotebook

[" notebookId”、“clusterId”、“路徑”)

downloadLargeResults

[" notebookId”、“notebookFullPath”)

downloadPreviewResults

[" notebookId”、“notebookFullPath”)

importNotebook

(“路徑”)

moveNotebook

[" newPath”、“媒介”、“notebookId”)

renameNotebook

["新名稱”、“oldName”、“parentPath”、“notebookId”)

restoreFolder

(“路徑”)

restoreNotebook

(“路徑”、“notebookId”、“notebookName”)

runCommand(隻詳細審計日誌)

[" notebookId”、“executionTime”、“地位”、“commandId”,“commandText”(見細節)]

takeNotebookSnapshot

(“路徑”)

回購

createRepo

[" url”、“提供者”、“路徑”)

updateRepo

[" id ",“分支”,“標簽”,“git_url”,“git_provider”)

getRepo

[" id "]

listRepos

[" path_prefix”、“next_page_token”)

deleteRepo

[" id "]

[" id "]

commitAndPush

[" id ",“消息”,“文件”,“checkSensitiveToken”)

checkoutBranch

[" id ",“分支”]

丟棄

[" id ",“file_paths”]

秘密

createScope

["範圍"]

deleteScope

["範圍"]

deleteSecret

(“關鍵”、“範圍”)

getSecret

(“範圍”、“關鍵”)

listAcls

["範圍"]

listSecrets

["範圍"]

putSecret

[" string_value”、“範圍”、“關鍵”)

serverlessRealTimeInference

啟用

[" registered_model_name”、“request_response_log_conf”)

禁用

[" registered_model_name "]

updateEndpointComputeConfig

[" registered_model_name”、“階段”、“desired_workload_config_spec”)

restartComputeConfigUpdate

[" registered_model_name”、“endpoint_version_name”)

databrickssql

addDashboardWidget

[" dashboardId”、“widgetId”)

cancelQueryExecution

[" queryExecutionId "]

changeWarehouseAcls

[" aclPermissionSet”、“resourceId”、“shardName”、“targetUserId”)

changePermissions

[" granteeAndPermission”、“objectId”、“objectType”)

cloneDashboard

[" dashboardId "]

commandSubmit(隻詳細審計日誌)

[" orgId”、“sourceIpAddress”、“時間戳”,“userAgent”,“userIdentity”,“shardName”(見細節)]

commandFinish(隻詳細審計日誌)

[" orgId”、“sourceIpAddress”、“時間戳”,“userAgent”,“userIdentity”,“shardName”(見細節)]

createAlertDestination

[" alertDestinationId”、“alertDestinationType”)

createDashboard

[" dashboardId "]

createDataPreviewDashboard

[" dashboardId "]

createWarehouse

[" auto_resume”、“auto_stop_mins”、“頻道”,“cluster_size”,“conf_pairs”、“custom_cluster_confs”、“enable_databricks_compute”、“enable_photon”、“enable_serverless_compute”、“instance_profile_arn”、“max_num_clusters”、“min_num_clusters”、“名稱”、“大小”、“spot_instance_policy”,“標簽”,“test_overrides”)

createQuery

[" queryId "]

createQueryDraft

[" queryId "]

createQuerySnippet

[" querySnippetId "]

createRefreshSchedule

[" alertId”、“dashboardId”、“refreshScheduleId”)

createSampleDashboard

[" sampleDashboardId "]

createSubscription

[" dashboardId”、“refreshScheduleId”、“subscriptionId”)

createVisualization

[" queryId”、“visualizationId”)

deleteAlert

[" alertId "]

deleteAlertDestination

[" alertDestinationId "]

deleteDashboard

[" dashboardId "]

deleteDashboardWidget

[" widgetId "]

deleteWarehouse

[" id "]

deleteExternalDatasource

[" dataSourceId "]

deleteQuery

[" queryId "]

deleteQueryDraft

[" queryId "]

deleteQuerySnippet

[" querySnippetId "]

deleteRefreshSchedule

[" alertId”、“dashboardId”、“refreshScheduleId”)

deleteSubscription

[" subscriptionId "]

deleteVisualization

[" visualizationId "]

downloadQueryResult

["文件類型”、“queryId”、“queryResultId”)

editWarehouse

[" auto_stop_mins”、“通道”,“cluster_size”,“設計”,“enable_photon”,“enable_serverless_compute”、“id”,“instance_profile_arn”、“max_num_clusters”、“min_num_clusters”、“名稱”、“spot_instance_policy”,“標記”)

executeAdhocQuery

[" dataSourceId "]

executeSavedQuery

[" queryId "]

executeWidgetQuery

[" widgetId "]

favoriteDashboard

[" dashboardId "]

favoriteQuery

[" queryId "]

forkQuery

[" originalQueryId”、“queryId”)

listQueries

[" filter_by”、“include_metrics”、“max_results”、“page_token”)

moveDashboardToTrash

[" dashboardId "]

moveQueryToTrash

[" queryId "]

muteAlert

[" alertId "]

publishBatch

["狀態")

publishDashboardSnapshot

[" dashboardId”、“hookId”、“subscriptionId”)

restoreDashboard

[" dashboardId "]

restoreQuery

[" queryId "]

setWarehouseConfig

[" data_access_config”、“enable_serverless_compute”、“instance_profile_arn”、“security_policy”,“serverless_agreement”、“sql_configuration_parameters”、“try_create_databricks_managed_starter_warehouse”)

snapshotDashboard

[" dashboardId "]

startWarehouse

[" id "]

stopWarehouse

[" id "]

subscribeAlert

[" alertId”、“destinationId”)

transferObjectOwnership

[" newOwner”、“objectId”、“objectType”)

unfavoriteDashboard

[" dashboardId "]

unfavoriteQuery

[" queryId "]

unmuteAlert

[" alertId "]

unsubscribeAlert

[" alertId”、“subscriberId”)

updateAlert

[" alertId”、“queryId”)

updateAlertDestination

[" alertDestinationId "]

updateDashboard

[" dashboardId "]

updateDashboardWidget

[" widgetId "]

updateOrganizationSetting

[" has_configured_data_access”、“has_explored_sql_warehouses”、“has_granted_permissions”)

updateQuery

[" queryId "]

updateQueryDraft

[" queryId "]

updateQuerySnippet

[" querySnippetId "]

updateRefreshSchedule

[" alertId”、“dashboardId”、“refreshScheduleId”)

updateVisualization

[" visualizationId "]

sqlPermissions

createSecurable

(“可獲得的”)

grantPermission

(“許可”)

removeAllPermissions

(“可獲得的”)

requestPermissions

["請求"]

revokePermission

(“許可”)

showPermissions

["可到手的”、“主要”)

ssh

登錄

[" containerId”、“用戶名”、“港”、“publicKey”,“instanceId”)

注銷

["用戶名”、“containerId”、“instanceId”)

webTerminal

startSession

[" socketGUID”、“clusterId”、“serverPort”、“ProxyTargetURI”)

closeSession

[" socketGUID”、“clusterId”、“serverPort”、“ProxyTargetURI”)

工作空間

changeWorkspaceAcl

[" shardName”、“targetUserId”、“aclPermissionSet”、“resourceId”)

fileCreate

(“路徑”)

fileDelete

(“路徑”)

moveWorkspaceNode

[" destinationPath”、“路徑”)

purgeWorkspaceNodes

[" treestoreId "]

workspaceConfEdit(工作空間層設置更改)

[" workspaceConfKeys”(例如,詳細審計日誌使用價值enableVerboseAuditLogs)、“workspaceConfValues”(例如,對於詳細審計日誌這是真正的)

workspaceExport

[" workspaceExportFormat”、“notebookFullPath”)

帳戶級別審計日誌事件

服務

行動

請求參數

accountBillableUsage

getAggregatedUsage

[" account_id”、“window_size”、“start_time”、“end_time”,“meter_name”、“workspace_ids_filter”)

getDetailedUsage

[" account_id”、“start_month”、“end_month”、“with_pii”)

賬戶

登錄

(“用戶”)

gcpWorkspaceBrowserLogin

(“用戶”)

oidcBrowserLogin

(“用戶”)

注銷

(“用戶”)

accountsManager

updateAccount

[" account_id”、“賬戶”)

changeAccountOwner

[" account_id”、“first_name”、“last_name”,“電子郵件”)

consolidateAccounts

[" target_account_id”、“account_ids_to_consolidate”)

updateSubscription

[" account_id”、“subscription_id”、“訂閱”)

listSubscriptions

[" account_id "]

createWorkspaceConfiguration

(“工作區”)

getWorkspaceConfiguration

[" account_id”、“workspace_id”)

listWorkspaceConfigurations

[" account_id "]

updateWorkspaceConfiguration

[" account_id”、“workspace_id”)

deleteWorkspaceConfiguration

[" account_id”、“workspace_id”)

acceptTos

[" workspace_id "]

發送到

[" account_id”、“workspace_id”)

createCredentialsConfiguration

(“憑證”)

getCredentialsConfiguration

[" account_id”、“credentials_id”)

listCredentialsConfigurations

[" " account_id“”)

deleteCredentialsConfiguration

[" account_id”、“credentials_id”)

createStorageConfiguration

[" " storage_configuration“”)

getStorageConfiguration

[" account_id”、“storage_configuration_id”)

listStorageConfigurations

[" account_id "]

deleteStorageConfiguration

[" account_id”、“storage_configuration_id”)

createNetworkConfiguration

(“網絡”)

getNetworkConfiguration

[" account_id”、“network_id”)

listNetworkConfigurations

[" account_id "]

deleteNetworkConfiguration

[" account_id”、“network_id”)

createCustomerManagedKeyConfiguration

[" " customer_managed_key“”)

getCustomerManagedKeyConfiguration

[" account_id”、“customer_managed_key_id”)

listCustomerManagedKeyConfigurations

[" account_id "]

deleteCustomerManagedKeyConfiguration

[" account_id”、“customer_managed_key_id”)

listWorkspaceEncryptionKeyRecords

[" account_id”、“workspace_id”)

listWorkspaceEncryptionKeyRecordsForAccount

[" account_id "]

createVpcEndpoint

[" vpc_endpoint "]

getVpcEndpoint

[" account_id”、“vpc_endpoint_id”)

listVpcEndpoints

[" account_id "]

deleteVpcEndpoint

[" account_id”、“vpc_endpoint_id”)

createPrivateAccessSettings

[" private_access_settings "]

getPrivateAccessSettings

[" account_id”、“private_access_settings_id”)

listPrivateAccessSettingss

[" account_id "]

deletePrivateAccessSettings

[" account_id”、“private_access_settings_id”)

logDelivery

createLogDeliveryConfiguration

[" account_id”、“config_id”)

updateLogDeliveryConfiguration

[" config_id”、“account_id”、“地位”)

getLogDeliveryConfiguration

[" log_delivery_configuration "]

listLogDeliveryConfigurations

[" account_id”、“storage_configuration_id”、“credentials_id”,“狀態”)

ssoConfigBackend

創建

[" account_id”、“sso_type”、“配置”)

更新

[" account_id”、“sso_type”、“配置”)

得到

[" account_id”、“sso_type”)

分析審計日誌

你可以使用磚分析審計日誌。下麵的示例使用日誌報告磚訪問和Apache的火花版本。

負載審計日誌DataFrame和注冊DataFrame作為臨時表。看到使用Amazon S3中的數據一個詳細的指南。

瓦爾df=火花格式(“json”)。負載(“s3a: / / bucketName /道路/ / auditLogs”)dfcreateOrReplaceTempView(“audit_logs”)

列出用戶訪問數據磚。

%sql選擇截然不同的userIdentity電子郵件,sourceIPAddressaudit_logs在哪裏=“賬戶”actionName就像登錄“% %”

檢查所使用的Apache版本火花。

%sql選擇requestParamsspark_version,(*)audit_logs在哪裏=“集群”actionName=“創造”集團通過requestParamsspark_version

檢查表數據訪問。

%sql選擇*audit_logs在哪裏=“sqlPermissions”actionName=“requestPermissions”