通过邀请管理 GuardDuty 帐户 - Amazon GuardDuty
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

通过邀请管理 GuardDuty 帐户

要管理您的组织外部的账户,可以使用传统邀请方法。当您使用此方法时,如果另一个账户接受邀请成为成员账户,您的账户将被指定为管理员账户。

如果您的账户不是管理员账户,可以接受来自其他账户的邀请。接受邀请后,您的账户将成为成员账户。一个Amazon账户不能同时是 GuardDuty 管理员和成员账户。

通过邀请关联的账户与管理员对成员关系的整体管理员与成员关联的账户相同。Amazon Organizations,如了解 GuardDuty 管理员与会员帐户之间的关系。但是,邀请管理员账户用户无法代表关联的成员账户启用 GuardDuty,也无法查看其Amazon Organizations组织。

重要

当 GuardDuty 使用此方法创建成员账户时,可能会发生跨区域数据传输。为了验证成员账户的电子邮件地址,GuardDuty 使用仅在美国东部(弗吉尼亚北部)区域中运行的电子邮件验证服务。

通过邀请(控制台)指定管理员和成员帐户

可使用以下过程添加账户,邀请账户,或者接受来自其他账户的邀请。

步骤 1 — 添加账户

  1. 从打开 GuardDuty 控制台https://console.aws.amazon.com/guardduty/

  2. 在导航窗格中,选择 Accounts (账户)

  3. 在顶部面板中选择 Add accounts by invitation (通过邀请添加账户)

  4. 在存储库的添加成员账户页面,在输入帐户中,输入Amazon账户 ID 和您要添加的账户的电子邮件地址。然后,选择添加

    重要

    您在此步骤中指定的电子邮件地址必须与Amazon账户,您希望添加为 GuardDuty 成员账户。

    您可以通过一次指定一个账户的 ID 和电子邮件地址来添加多个账户。您还可以选择 Upload list (.csv) 来批量添加账户。如果您希望邀请其中某些账户立即启用 GuardDuty 但推迟对另一些账户启用,此功能非常有用。

    重要

    您的 CSV 文件的第一行必须包含以下标题,如下面的示例中所示:Account ID,Email。 后面的每一行必须包含您要添加账户的单个有效账户 ID 和单个有效电子邮件地址。每行必须显示一个账户,账户 ID 和电子邮件地址必须使用逗号分隔。

    Account ID,Email 111111111111,user@example.com
  5. 账户添加完毕后,选择 Next (下一步)

    添加的账户显示在 Accounts 页面上的列表中。此列表中添加的每个账户在 Status 列中具有 Invite 链接。

步骤 2 — 邀请账户

  1. 从打开 GuardDuty 控制台https://console.aws.amazon.com/guardduty/

  2. 在导航窗格中,选择 Accounts (账户)

  3. 对于您要邀请以启用 GuardDuty 的账户,请选择邀请链接,显示在状态列中所添加的帐户列表。

  4. GuardDuty对话框中,输入邀请消息(可选),然后选择发送通知

    注意

    如果已邀请账户无权访问电子邮件,请选择同时向根用户发送电子邮件通知Amazon帐户并在被邀请者的 Personal Health Dashboard 中生成警报在发送邀请之前。

    受邀账户的 Status 列中的值更改为 Pending

步骤 3 — 接受邀请

  1. 从打开 GuardDuty 控制台https://console.aws.amazon.com/guardduty/

  2. 请执行下列操作之一:

    • 如果您没有启用 GuardDuty,则在启用 GuardDuty页面上,选择启用 GuardDuty。然后使用 Accept 小部件和 Accept invitation 按钮接受成员资格邀请。

      重要

      您必须先启用 GuardDuty,然后才能接受成员资格邀请。

    • 如果您已经启用了 “GuardDuty”,请使用Accept小部件和接受邀请按钮以接受成员资格邀请。

    在您接受邀请后,您的账户将变成 GuardDuty 成员账户。发送邀请的用户的账户成为 GuardDuty 管理员账户。管理员账户用户可以看到状态列中的成员帐户更改为已监控。管理员账户用户现在可以查看和管理您的成员账户的 GuardDuty 调查结果。

通过邀请指定 GuardDuty 管理员和会员帐户 (API)

您可以使用 API 操作,通过邀请指定管理员和成员 GuardDuty 账户。运行以下 GuardDuty API 操作,在 GuardDuty 中指定管理员和成员账户。

使用凭证完成以下过程Amazon账户,您希望指定为 GuardDuty 管理员账户。

  1. 运行CreateMembersAPI 操作Amazon帐户已启用 GuardDuty。这是您希望成为 GuardDuty 管理员账户的账户。

    必须指定当前Amazon账户以及要成为 GuardDuty Duty 成员的账户的账户 ID 和电子邮件地址。可以使用此 API 操作创建一个或多个成员。

    您还可以使用Amazon命令行工具,通过运行下面的 CLI 命令来指定管理员账户。务必使用您自己的有效探测器 ID、账户 ID 和电子邮件。

    Amazon guardduty create-members --detector-id 12abc34d567e8fa901bc2d34e56789f0 --account-details AccountId=123456789012,Email=guarddutymember@amazon.com
  2. 运行InviteMembersAPI 操作Amazon帐户已启用 GuardDuty。这是您希望成为 GuardDuty 管理员账户的账户。

    必须指定当前Amazon账户以及您希望成为 GuardDuty 成员的账户 ID。可以使用此 API 操作邀请一个或多个成员。

    注意

    您也可以使用 message 请求参数指定可选的邀请消息。

    您还可以使用Amazon命令行工具,通过运行以下 CLI 命令来指定成员账户。务必使用您自己的有效探测器 ID,以及您要邀请的账户的有效账户 ID。

    Amazon guardduty invite-members --detector-id 12abc34d567e8fa901bc2d34e56789f0 --account-ids 123456789012

使用每个Amazon账户,您希望指定为 GuardDuty 成员账户。

  1. 运行CreateDetector各个 API 操作Amazon账户,该账户已邀请成为 GuardDuty 成员账户并希望接受邀请。

    必须指定是否使用 GuardDuty 服务启用探测器资源。必须创建和启用探测器以使 GuardDuty 正常运行。您必须先启用 GuardDuty,然后再接受邀请。

    您也可以通过使用Amazon使用以下 CLI 命令完成命令行工具。

    Amazon guardduty create-detector --enable
  2. 运行AcceptInvitation各个 API 操作Amazon账户,然后使用账户凭证接受成员资格邀请。

    必须指定此Amazon账户、发送邀请的管理员账户的账户 ID 以及您接受的邀请的邀请 ID。您可以在邀请电子邮件中或使用ListInvitations操作。

    您也可以使用Amazon命令行工具,运行以下 CLI 命令。请务必使用有效的探测器 ID、管理员账户 ID 和邀请 ID。

    Amazon guardduty accept-invitation --detector-id 12abc34d567e8fa901bc2d34e56789f0 --master-id 012345678901 --invitation-id 84b097800250d17d1872b34c4daadcf5

同时在多个帐户中启用 GuardDuty

使用以下方法可同时在多个账户中启用 GuardDuty。

使用 Python 脚本在多个帐户中同时启用 GuardDuty 兵

您可以使用 GitHub 上的示例存储库中的脚本,在多个账户上自动启用或禁用 GuardDuty,网址为https://github.com/aws-samples/amazon-guardduty-multiaccount-scripts。使用本部分中介绍的过程,为使用 Amazon EC2 的成员账户列表启用 GuardDuty。有关使用禁用脚本或在本地设置该脚本的信息,请参阅 GitHub 说明。

enableguardduty.py 脚本可启用 GuardDuty、从管理员账户发送邀请并在所有成员账户中接受邀请。这样可得到一个管理员 GuardDuty 账户,其中包含所有成员账户的所有安全调查结果 由于 GuardDuty 是按区域隔离的,因此每个成员账户的调查结果将汇总到管理员账户中的相应区域。例如,GuardDuty 管理员账户中的 us-east-1 区域包含所有关联成员账户的所有 us-east-1 安全调查结果。

这些脚本依赖于具有托管策略 AmazonGuardDutyFullAccess 的共享 IAM 角色。此策略为实体提供了对 GuardDuty 的访问权限,并且必须存在于管理员账户中以及要启用 GuardDuDuDuDuDuty 的每个账户中。

默认情况下,以下过程在所有可用区域中启用 GuardDuty。您 GuardDuty 能在指定区域中使用可选--enabled_regions参数并提供逗号分隔的区域列表。您还可以选择通过打开 enableguardduty.py 并编辑 gd_invite_message 字符串,自定义发送给成员账户的邀请消息。

  1. 在 GuardDuty 管理员账户中创建 IAM 角色,然后将AmazonGuardDutyFullAccess托管策略。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "guardduty:*", "Resource": "*" }, { "Effect": "Allow", "Action": "iam:CreateServiceLinkedRole", "Resource": "*", "Condition": { "StringLike": { "iam:AWSServiceName": "guardduty.amazonaws.com" } } } ] }
  2. 在要由 GuardDuty Duty 管理员账户管理的每个成员账户中,创建一个 IAM 角色。该角色必须与步骤 1 中创建的角色的名称相同,它应该允许管理员账户作为可信实体,并且应该具有相同AmazonGuardDutyFullAccess之前介绍的托管策略。

  3. 启动具有附加角色的新的 Amazon Linux 实例,该角色具有允许实例代入服务角色的以下信任关系。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "ec2.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }
  4. 登录到新实例,然后运行以下命令进行设置。

    sudo yum install git python sudo yum install python-pip pip install boto3 Amazon configure git clone https://github.com/aws-samples/amazon-guardduty-multiaccount-scripts.git cd amazon-guardduty-multiaccount-scripts sudo chmod +x disableguardduty.py enableguardduty.py
  5. 创建一个 CSV 文件,其中包含您在步骤 2 中将角色添加到的成员账户的账户 ID 和电子邮件的列表。必须每行显示一个账户,账户 ID 和电子邮件地址必须用逗号分隔,如以下示例中所示。

    111111111111,user@example.com
    注意

    CSV 文件必须与 enableguardduty.py 脚本的位置相同。您可以使用以下方法,将现有 CSV 文件从 Amazon S3 复制到当前目录。

    Amazon s3 cp s3://my-bucket/my_key_name example.csv
  6. 运行 Python 脚本。务必将您的 GuardDuty 管理员账户 ID、在前几个步骤中创建的角色名称以及 CSV 文件的名称作为参数提供。

    python enableguardduty.py --master_account 111111111111 --assume_role roleName accountID.csv