您可以使用操作審計創建跟蹤,將操作事件持續投遞到日志服務SLS或對象存儲OSS中。Terraform可以完成自動化創建。
前提條件
運行Terraform程序前,請確保您已開通以下云服務:
背景信息
Terraform是一個開源的自動化資源編排工具,幫助您自動化構建、配置和管理云上資源。您可以通過Terraform模板創建跟蹤。更多信息,請參見Terraform Alibaba Cloud Provider。
創建跟蹤
您可以通過Terraform程序將跟蹤分別投遞到日志服務SLS或對象存儲OSS,或者同時進行投遞。關于如何選擇存儲服務,請參見將事件持續投遞到指定服務。
場景一:僅投遞到SLS
當您需要將跟蹤投遞到SLS時,僅需在Cloud Shell部署SLS相關程序,即可自動創建跟蹤。
在彈出的對話框中,單擊確認,克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側目錄的tutorial-actiontrail-createdby-terraform,打開trail-sls目錄下的variables.tf文件。
設置文件variables.tf中各個參數的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
sls_project_name:日志服務SLS的Project名稱。說明:請您根據所需設置該參數,確保其唯一。
account_id:阿里云賬號。
單擊圖標。
輸入以下命令,定位用來創建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail-sls
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數),說明跟蹤創建成功,示例如下。
Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Outputs: sls_project_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
場景二:僅投遞到OSS
當您需要將跟蹤投遞到OSS時,僅需在Cloud Shell部署OSS相關程序,即可自動創建跟蹤。
在彈出的對話框中,單擊確認,克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側目錄的tutorial-actiontrail-createdby-terraform,打開trail-oss目錄下的variables.tf文件。
設置文件variables.tf中各個參數的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
oss_bucket_name:對象存儲OSS的Bucket名稱。說明:請您根據所需設置該參數,確保其唯一。
account_id:阿里云賬號。
單擊圖標。
輸入以下命令,定位用來創建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail-oss
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數),說明跟蹤創建成功,示例如下。
Apply complete! Resources: 2 added, 0 changed, 0 destroyed. Outputs: oss_bucket_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
場景三:同時投遞到SLS和OSS
當您需要將跟蹤同時投遞到SLS和OSS時,僅需在Cloud Shell部署程序,即可自動創建跟蹤。
在彈出的對話框中,單擊確認,克隆代碼到CloudShell。
先單擊右上角的編輯器,再單擊左側目錄的tutorial-actiontrail-createdby-terraform,打開trail目錄下的variables.tf文件。
設置文件variables.tf中各個參數的default的值。
region:資源歸屬的地域。
trail_name:跟蹤名稱。
oss_bucket_name:對象存儲OSS的Bucket名稱。說明:請您根據所需設置該參數,確保其唯一。
sls_project_name:日志服務SLS的Project名稱。說明:請您根據所需設置該參數,確保其唯一。
account_id:阿里云賬號。
單擊圖標。
輸入以下命令,定位用來創建跟蹤的Terraform模板的目錄。
cd ~/tutorial-actiontrail-createdby-terraform/trail
輸入以下命令,加載Terraform Alibaba Cloud Provider。
terraform init
輸入以下命令,創建跟蹤。
terraform apply
如果返回Resources: X added(X表示新增資源的個數),說明跟蹤創建成功,示例如下。
Apply complete! Resources: 3 added, 0 changed, 0 destroyed. Outputs: oss_bucket_id = [ [ "tutorial-terraform-actiontrail", ], ] sls_project_id = [ [ "tutorial-terraform-actiontrail", ], ] trail_id = [ [ "tutorial-actiontrail", ], ]
(可選)刪除資源
您可以根據場景選擇不同的資源刪除方法。刪除后,自動投遞跟蹤程序將失效。
場景一:僅刪除SLS和跟蹤資源
當您需要刪除SLS和跟蹤資源時,僅需輸入刪除命令,即可自動刪除資源。
輸入以下命令,刪除程序中創建的所有資源。刪除后,自動投遞跟蹤程序將失效。
terraform destroy
如果返回Resources: X destroyed(X表示刪除資源的個數),說明資源刪除成功,示例如下。
Destroy complete! Resources: 3 destroyed.
場景二:僅刪除OSS和跟蹤資源
當您將跟蹤投遞到OSS時,您需要先停止跟蹤,然后刪除OSS Bucket中的所有文件,最后輸入刪除命令。
輸入以下命令,停止跟蹤。
aliyun actiontrail StopLogging --region cn-hangzhou --Name your_trail_name
說明your_trail_name請替換為跟蹤名稱,本文示例中為tutorial-actiontrail。
等待1~2分鐘,然后輸入以下命令,刪除OSS Bucket中的文件。
aliyun oss rm oss://your_bucket_name -r --region cn-hangzhou
說明your_bucket_name請替換為OSS Bucket名稱,本文示例中為tutorial-terraform-actiontrail。
輸入以下命令,刪除程序中創建的所有資源。刪除后,自動投遞跟蹤程序將失效。
terraform destroy
如果返回Resources: X destroyed(X表示刪除資源的個數),說明資源刪除成功,示例如下。
Destroy complete! Resources: 2 destroyed.
場景三:同時刪除SLS、OSS和跟蹤資源
當您將跟蹤同時投遞到SLS和OSS時,您需要先停止跟蹤,然后刪除OSS Bucket中的所有文件,最后輸入刪除命令。
輸入以下命令,停止跟蹤。
aliyun actiontrail StopLogging --region cn-hangzhou --Name your_trail_name
說明your_trail_name請替換為跟蹤名稱,本文示例中為tutorial-actiontrail。
等待1~2分鐘,然后輸入以下命令,刪除OSS Bucket中的文件。
aliyun oss rm oss://your_bucket_name -r --region cn-hangzhou
說明your_bucket_name請替換為OSS Bucket名稱,本文示例中為tutorial-terraform-actiontrail。
輸入以下命令,刪除程序中創建的所有資源。刪除后,自動投遞跟蹤程序將失效。
terraform destroy
如果返回Resources: X destroyed(X表示刪除資源的個數),說明資源刪除成功,示例如下。
Destroy complete! Resources: 3 destroyed.
Terraform模板參數說明
當您需要修改Terraform程序中的代碼時,您可以參考如下參數說明修改Terraform模板。例如:您可以將event_rw設置為Write,僅跟蹤寫事件。
參數 | 說明 |
trail_name | 跟蹤名稱。 取值范圍: 長度為6~36個字符,必須以小寫英文字母開頭,可包含小寫英文字母、數字、短劃線(-)和下劃線(_)。 說明 同一個賬號內跟蹤名稱不可重復。 |
event_rw | 阿里云操作事件的類型。取值:
|
oss_bucket_name | OSS Bucket名稱。 說明 oss_bucket_name和sls_project_arn需至少指定其中一個參數。 |
oss_key_prefix | OSS Bucket中操作事件文件的前綴,默認為空。 |
role_name | 用戶允許操作審計服務扮演的RAM角色名稱,操作審計使用該角色將操作事件投遞到您的存儲服務,默認值:aliyunserviceroleforactiontrail。 如果該角色不存在,系統會自動進行創建。更多信息,請參見操作審計服務關聯角色。 |
sls_project_arn | 日志服務Project ARN。格式為 說明 oss_bucket_name和sls_project_arn需至少指定其中一個參數。 |
sls_write_role_arn | 日志服務角色ARN。操作審計將用該角色來將操作事件寫入對應SLS Logstore,格式為 |
trail_region | 跟蹤地域。默認值:All(跟蹤所有地域)。 您也可以指定地域(region_id),多個地域用半角逗號(,)分隔,例如: |
mns_topic_arn | MNS消息主題的ARN。如果設置了該參數,則當操作事件投遞到OSS后,操作審計將向對應主題發送一條消息。 |
status | 跟蹤狀態。取值:
|