使用管理多个账户 AWS Organizations - Amazon Security Lake

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用管理多个账户 AWS Organizations

您可以使用 Amazon Security Lake 从多个 AWS 账户收集安全日志和事件。为帮助您自动化和简化多个账户的管理,我们强烈建议您将 Security Lake 与 AWS Organizations 集成。

在 Organizations 中,用于创建组织的账户称为管理账户。要将 Security Lake 与 Organizations 集成,管理账户必须为组织指定一个委托的 Security Lake 管理员账户。

委托的 Security Lake 管理员可以启用 Security Lake,并为成员账户配置 Security Lake 设置。委派的管理员可以在所有启用了 Security Lake AWS 区域 的地方(无论他们当前使用的是哪个区域终端节点)收集整个组织的日志和事件。委托管理员还可以配置 Security Lake 来自动收集新组织账户的日志和事件数据。

委托的 Security Lake 管理员有权访问关联成员账户中的日志和事件数据。因此,他们可以配置 Security Lake 来收集关联成员账户拥有的数据。他们还可以向订阅用户授予使用关联成员账户所拥有的数据的权限。

要为组织中的多个账户启用 Security Lake,组织管理账户必须首先为组织指定一个委托的 Security Lake 管理员账户。然后,委托管理员可以为组织启用和配置 Security Lake。

重要

使用 Security Lake 的 RegisterDataLakeDelegatedAdministratorAPI 允许 Security Lake 访问您的组织并注册组织的委托管理员。

如果您使用组织的 API 注册委托管理员,则可能无法成功创建组织的服务相关角色。为确保全部功能,请使用 Security Lake API。

有关设置 Organizations 的信息,请参阅《AWS Organizations 用户指南》中的创建和管理组织

委托的 Security Lake 管理员的重要注意事项

请注意以下因素,它们定义了委托管理员在 Security Lake 中的行为方式:

委托管理员在所有区域都是相同的。

在您创建委托管理员后,它将成为您启用了 Security Lake 的每个区域的委托管理员。

我们建议将日志存档账户设置为 Security Lake 委托管理员。

日志存档账户专用于摄取和存档所有与安全相关的日志。 AWS 账户 通常只有少数用户拥有对该账户的访问权限,例如审计员和进行合规调查的安全团队。我们建议将日志存档账户设置为 Security Lake 委托管理员,这样您就可以查看与安全相关的日志和事件,且只需进行极少的上下文切换。

此外,我们建议仅允许极少数用户直接访问日志存档账户。除了这些用户外,如果其他用户需要访问 Security Lake 收集的数据,您可以将其添加为 Security Lake 订阅用户。有关添加订阅用户的信息,请参阅 Amazon Security Lake 中的订阅用户管理

如果您不使用该 AWS Control Tower 服务,则可能没有日志存档帐户。有关日志存档账户的更多信息,请参阅《AWS 安全参考架构》中的安全 OU – 日志存档账户

一个组织只能有一个委托管理员。

每个组织只能有一个委托的 Security Lake 管理员。

组织的管理账户不能成为委托管理员。

根据 AWS 安全最佳实践和最低权限原则,您的组织管理账户不能成为委托管理员。

委托管理员必须属于有效组织。

删除组织后,委托管理员账户将无法再管理 Security Lake。您必须从其他组织指定一个委托管理员,或通过不属于组织的独立账户来使用 Security Lake。

指定委托管理员所需的 IAM 权限

在指定委派的 Security Lake 管理员时,您必须拥有启用安全湖和使用以下政策声明中列出的某些 AWS Organizations API 操作的权限。

您可以在 AWS Identity and Access Management (IAM) 策略的末尾添加以下语句来授予这些权限。

{ "Sid": "Grant permissions to designate a delegated Security Lake administrator", "Effect": "Allow", "Action": [ "securitylake:RegisterDataLakeDelegatedAdministrator", "organizations:EnableAWSServiceAccess", "organizations:RegisterDelegatedAdministrator", "organizations:ListAccounts", "organizations:ListDelegatedAdministrators", "organizations:ListAWSServiceAccessForOrganization", "organizations:DescribeOrganizationalUnit", "organizations:DescribeAccount", "organizations:DescribeOrganization" ], "Resource": "*" }

指定委托的 Security Lake 管理员并添加成员账户

选择您的访问方式,为组织指定委托的 Security Lake 管理员账户。只有组织管理账户可以为其组织指定委托管理员账户。组织管理账户不能成为其组织的委托管理员账户。

注意
  • 组织管理账户应使用 Security Lake RegisterDataLakeDelegatedAdministrator 操作来指定委派的 Security Lake 管理员账户。不支持通过 Organizations 指定委派的 Security Lake 管理员。

  • 如果要更改组织的委托管理员,您必须首先删除当前的委托管理员,然后再指定新的委托管理员。

Console
  1. 打开 Security Lake 控制台:https://console.aws.amazon.com/securitylake/

    使用组织管理账户的凭据登录。

    • 如果尚未启用 Security Lake,请选择开始,然后在启用 Security Lake 页面上指定委托的 Security Lake 管理员。

    • 如果已启用 Security Lake,请在设置页面上指定委托的 Security Lake 管理员。

  2. 在 “将管理委托给其他账户” 下,选择已担任其他 AWS 安全服务委派管理员的账户(推荐)。或者,输入您要指定为 Security Lake 委派管理员的账户的 12 位 AWS 账户 ID。

  3. 选择 Delegate(委派)。如果 Security Lake 尚未启用,指定委托管理员将在您的当前区域内为该账户启用 Security Lake。

API

要以编程方式指定委派管理员,请使用 Security Lake API 的RegisterDataLakeDelegatedAdministrator操作。您必须从组织管理账户调用该操作。如果您使用的是 AWS CLI,请从组织管理账户运行register-data-lake-delegated-administrator命令。在您的请求中,使用accountId参数指定的 12 位数账户 ID, AWS 账户 以指定为组织的委托管理员账户。

例如,以下 AWS CLI 命令指定委派的管理员。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

$ aws securitylake register-data-lake-delegated-administrator \ --account-id 123456789012

委托管理员还可以选择自动收集新组织账户的 AWS 日志和事件数据。使用此配置,在新账户中将账户添加到组织时,Security Lake 会自动启用 AWS Organizations。作为委托管理员,您可以使用 Security Lake API 的CreateDataLakeOrganizationConfiguration操作启用此配置,或者如果您使用的是 AWS CLI,则可以通过运行create-data-lake-organization-configuration命令来启用此配置。您还可以在请求中为新账户指定某些配置设置。

例如,以下 AWS CLI 命令会自动启用 Security Lake 以及在新的组织账户中收集 Amazon Route 53 解析器查询日志、 AWS Security Hub 调查结果和亚马逊虚拟私有云 (Amazon VPC) 流日志。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

$ aws securitylake create-data-lake-organization-configuration \ --auto-enable-new-account '[{"region":"us-east-1","sources":[{"sourceName":"ROUTE53"},{"sourceName":"SH_FINDINGS"},{"sourceName":"VPC_FLOW"}]}]'

组织的管理账户指定委托管理员后,管理员可以为组织启用和配置 Security Lake。这包括启用和配置 Security Lake 以收集组织中各个账户的 AWS 日志和事件数据。有关更多信息,请参阅 从中收集数据 AWS 服务

您可以使用该GetDataLakeOrganizationConfiguration操作来获取有关组织当前新成员账户配置的详细信息。

移除委托的 Security Lake 管理员

只有组织管理账户可以为其组织移除委托的 Security Lake 管理员。如果要更改组织的委托管理员,请移除当前的委托管理员,然后指定新的委托管理员。

重要

移除委托的 Security Lake 管理员会删除数据湖,并针对组织中的账户禁用 Security Lake。

您无法使用 Security Lake 控制台更改或移除委托管理员。这些任务只能以编程方式执行。

要以编程方式移除委派的管理员,请使用 Security Lake API 的DeregisterDataLakeDelegatedAdministrator操作。您必须从组织管理账户调用该操作。如果您使用的是 AWS CLI,请从组织管理账户运行deregister-data-lake-delegated-administrator命令。

例如,以下 AWS CLI 命令删除委派的 Security Lake 管理员。

$ aws securitylake deregister-data-lake-delegated-administrator

要保留委托管理员指定,但要更改新成员账户的自动配置设置,请使用 Security Lake API 的DeleteDataLakeOrganizationConfiguration操作,或者,如果你使用的是 AWS CLI,则使用delete-data-lake-organization-configuration命令。只有授权的管理员才能更改组织的这些设置。

例如,以下 AWS CLI 命令停止从加入组织的新成员账户自动收集 Security Hub 调查结果。在委托的管理员调用此操作后,新的成员账户将不会将 Security Hub 的发现结果贡献给数据湖。此示例是针对 Linux、macOS 或 Unix 进行格式化的,它使用反斜杠 (\) 行继续符来提高可读性。

$ aws securitylake delete-data-lake-organization-configuration \ --auto-enable-new-account '[{"region":"us-east-1","sources":[{"sourceName":"SH_FINDINGS"}]}]'

Security Lake 可信访问

为组织设置 Security Lake 后, AWS Organizations 管理账户可以通过 Security Lake 启用可信访问。可信访问允许 Security Lake 创建与 IAM 服务相关角色,并代表您在您的组织及其账户中执行任务。有关详细信息,请参阅《AWS Organizations 用户指南》中的结合使用 AWS Organizations 与其他 AWS 服务

作为组织管理账户的用户,您可以在 AWS Organizations中禁用对 Security Lake 的可信访问。有关禁用可信访问的说明,请参阅《AWS Organizations 用户指南》中的如何启用或禁用可信访问

如果委派的管理员 AWS 账户 处于暂停状态、隔离状态或关闭状态,我们建议您禁用可信访问权限。