您可以使用操作审计创建跟踪,将操作事件持续投递到日志服务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 | 跟踪状态。取值:
|