日志审计服务集成阿里云资源目录,助力企业简单、快速完成跨阿里云账号采集云产品日志。本文主要介绍通过控制台方式和Terraform方式完成日志审计服务多账号采集配置的操作步骤。
背景信息
资源目录RD(Resource Directory)是阿里云面向企业客户提供的一套多级账号和资源关系管理服务。日志审计服务集成了资源目录,您可以通过管理账号或者委派管理员账号将企业内其他阿里云账号添加为成员,从而实现跨账号采集云产品日志。关于资源目录的更多信息,请参见什么是资源管理。
操作流程
跨产品采集云日志的操作包括资源目录侧操作和日志审计服务侧操作。本文主要介绍在日志审计服务中配置多账号采集的操作,其他操作请参见对应文档。
- 资源目录 - 开通资源目录。具体操作,请参见开通资源目录。 
- 邀请成员账号。具体操作,请参见创建成员或邀请阿里云账号加入资源目录。 
- 设置委派管理员。具体操作,请参见添加委派管理员账号。 
 
- 日志审计服务 - 您可以通过日志服务控制台或Terraform完成如下操作。 - 管理账号或委派管理员账号作为日志审计服务的中心账号,完成多账号采集配置。 
- 开启目标云产品日志的采集开关。具体操作,请参见开启和管理日志采集功能。 
 

优势
通过资源目录进行多账号管理,具备如下优势。
- 建立账号间信任关系。 - 帮助解决审计场景下阿里云账号间信任关系建立问题。 
- 利用RD体系创建新账号。 - 避免了人工创建阿里云账号并做实名认证的繁琐流程。 
- 邀请已有阿里云账号加入组织。 - 如果企业已拥有阿里云账号,可通过邀请方式将已有账号加入企业RD组织。 
- 依据企业的业务环境构建目录结构。 - 通过订阅资源目录分组,可以解决企业内组织多账号自动发现的问题。 
- 帮助企业建立树状的组织多账号结构。 - 企业根据业务情况,按照应用程序、环境、团队或任何其他对业务有意义的业务单元进行账号分组管理,建立树状的组织多账号结构。 
- 为集成产品在组织成员账号中创建服务关联角色。 - 解决RAM角色被有意或无意修改问题。 
- 支持在云服务中指定委派管理员。 - 通过委派管理员账号,可以将组织管理任务与业务管理任务相分离,管理账号执行资源目录的组织管理任务。 
通过控制台完成配置
- 使用委派管理员账号或管理账号登录日志服务控制台。 
- 在日志应用区域的审计与安全页签下,单击日志审计服务。 
- 在左侧导航栏中,选择。 
- 在资源目录管理模式页签中,单击修改。 
- 在添加账号面板中,选择目标账号,然后单击确认。 - 资源目录管理模式支持全员方式和自定义方式。更多信息,请参见资源目录管理模式(推荐)。  - 方式 - 说明 - 全员 - 日志审计服务自动将资源目录下的所有成员纳入到采集名单中,并采集这些成员中已开启日志采集功能的云产品的日志。 - 新增资源目录成员后,该成员自动被纳入采集名单中。 
- 移除资源目录成员后,该成员自动被移出采集名单。 
 - 自定义 - 您可以自定义选择目标成员到采集名单中,日志审计服务会采集这些成员中已开启日志采集功能的云产品的日志。 - 新增资源目录成员后,该成员不会自动纳入采集名单中。 
- 移除资源目录成员后,如果该成员在您的采集名单中,会被自动移出采集名单。 
 
通过Terraform完成配置
Terraform是一种开源工具,用于安全高效地预览、配置和管理云基础架构和资源。Terraform的命令行接口(CLI)提供了一种简单机制,用于将配置文件部署到阿里云或其他任意支持的云上,并对其进行版本控制。更多信息,请参见使用Terraform配置日志审计服务。
步骤一:创建工作目录和文件
- 创建一个Terraform工作目录(例如名为sls的工作目录)。 
- 在您所创建的目录下执行如下命令,初始化工作目录。 - terraform init
- 创建一个名为terraform.tf的文件。 
步骤二:配置身份信息
使用Terraform进行RD多账号采集配置的身份认证支持环境变量、静态AccessKey、ECS Role以及AssumeRole等方式。更多信息,请参见Authentication。
- 方式一:环境变量 - 获取阿里云账号或RAM用户AccessKey,然后在环境变量中配置用户身份以及日志审计服务的中心Project所在地域。示例如下: - export ALICLOUD_ACCESS_KEY="AccessKey ID" export ALICLOUD_SECRET_KEY="AccessKey Secret" export ALICLOUD_REGION="cn-huhehaote"
- 方式二:静态AccessKey - 获取阿里云账号或RAM用户AccessKey,然后在terraform.tf中配置provider信息。 - provider "alicloud" { access_key = "AccessKey ID" secret_key = "AccessKey Secret" region = "cn-huhehaote" }
- 方式三:ECS实例角色 - 将ECS实例绑定RAM角色,使ECS实例及其上的应用基于STS临时凭证访问其他云资源,无需透露长期AccessKey。 - 创建阿里云服务角色。具体操作,请参见创建普通服务角色。 
- 为创建的RAM角色授予访问日志服务的权限。具体操作,请参见为RAM角色授权。相关的权限策略,请参见附录:日志审计所需最小写权限。 
- 为ECS实例绑定RAM角色。具体操作,请参见为实例授予RAM角色。 
- 在 - terraform.tf中配置provider信息。- provider "alicloud" { ecs_role_name = "您所创建的RAM角色名称" region = "cn-huhehaote" }
 
- 方式四:扮演RAM角色 - 使用阿里云账号为RAM用户授予AliyunSTSAssumeRoleAccess权限。 
- 创建阿里云服务角色。具体操作,请参见创建可信实体为阿里云服务的RAM角色。 
- 为创建的RAM角色授予访问日志服务的权限。具体操作,请参见为RAM角色授权。相关的权限策略,请参见附录:日志审计所需最小写权限。 
- 为受信账号下的RAM用户授予AssumeRole权限。具体操作,请参见步骤三:为受信云账号下的RAM用户授权。 
- 获取RAM角色的临时安全令牌。具体操作,请参见步骤四:获取RAM角色的临时安全令牌。 
- 在terraform.tf中配置provider信息。 - provider "alicloud" { assume_role { role_arn = "acs:ram::阿里云账号UID:role/sls-test" session_name = "AuditRoleSession" session_expiration = 999 } }
 
步骤三:配置多账号采集
在terraform.tf文件中,添加如下配置。重要参数说明,请参见配置日志审计服务相关参数。
resource "alicloud_log_audit" "rdtest" {
  display_name = "tf-audit-rd-test"
  aliuid = "1379186349****"
  variable_map = {
    "actiontrail_enabled" = "false",
    "actiontrail_ttl" = "180"
  }
  multi_account = ["1257918632****","1324567349****"]
  resource_directory_type="custom"
}步骤四:使terraform.tf文件中的采集配置生效
- 执行如下命令。 - terraform apply
- 输入yes。 - 如果返回结果中提示 - Apply complete!,表示应用采集配置成功,日志审计服务将按照采集配置进行日志采集和存储。 
附录:日志审计所需最小写权限
如下权限策略为操作日志审计服务的最小权限。
{
    "Version": "1",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "log:GetApp",
                "log:CreateApp"
            ],
            "Resource": [
                "acs:log:*:*:app/audit"
            ]
        },
        {
            "Effect": "Allow",
            "Action": [
                "log:Get*",
                "log:List*",
                "log:CreateJob",
                "log:UpdateJob",
                "log:CreateProject"
            ],
            "Resource": [
                "acs:log:*:*:project/slsaudit-*"
            ]
        }
    ]
}