

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

# 在 Security Lake 中创建具有数据访问权限的订户
<a name="create-subscriber-data-access"></a>

选择以下访问方法之一来创建可以访问当前数据的订阅者 AWS 区域。

------
#### [ Console ]

1. 在上打开 Security Lake 控制台[https://console.aws.amazon.com/securitylake/](https://console.aws.amazon.com/securitylake/)。

1. 使用页面右上角的 AWS 区域 选择器，选择要在其中创建订阅者的区域。

1. 在导航窗格中选择**订阅用户**。

1. 在**订阅用户**页面上，选择**创建订阅用户**。

1. 对于**订阅用户详细信息**，输入**订阅用户名称**和可选的**描述**。

   该**区域**将自动填充为您当前选择的区域 AWS 区域 ，并且无法修改。

1. 对于**日志源和事件来源**，选择订阅用户有权使用的来源。

1. 对于**数据访问方法**，选择 **S3**，以便为订阅用户设置数据访问权限。

1. 对于**订阅者凭证**，请提供订阅者的 AWS 账户 ID 和[外部 ID](https://docs.aws.amazon.com//security-lake/latest/userguide/prereqs-creating-subscriber.html#subscriber-external-id)。

1. （可选）对于**通知详情**，如果您想让 Security Lake 创建一个 Amazon SQS 队列供订阅用户轮询以便获得对象通知，请选择 **SQS 队列**。如果您希望 Security Lake 向 HTTPS 终端节点发送通知，请选择**订阅终端节点**。 EventBridge 

   如果选择**订阅端点**，您还要执行以下操作：

   1. 输入**订阅端点**。有效端点格式的示例为 **http://example.com**。您也可以选择提供 **HTTPS 密钥名称**和 **HTTPS 密钥值**。

   1. 对于**服务访问权限**，请创建新的 IAM 角色或使用现有 IAM 角色来 EventBridge授予调用 API 目的地和向正确的终端节点发送对象通知的权限。

      有关创建新 IAM 角色的信息，请参阅[创建 IAM 角色以调用 EventBridge API 目标](https://docs.aws.amazon.com//security-lake/latest/userguide/prereqs-creating-subscriber.html#iam-role-subscriber)。

1. （可选）对于**标签**，最多输入 50 个要分配给订阅用户的标签。

   *标签*是您可以为某些类型的 AWS 资源定义和分配的标签。每个标签都包含一个必需的标签键和一个可选的标签值。标签可以帮助您以不同的方式识别、分类和管理各种资源。要了解更多信息，请参阅[为安全湖资源添加标签](tagging-resources.md)。

1. 选择**创建**。

------
#### [ API ]

要以编程方式创建具有数据访问权限的订阅者，请使用 Security Lake API 的[CreateSubscriber](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_CreateSubscriber.html)操作。如果你使用的是 AWS Command Line Interface (AWS CLI)，请运行 [create-subscriber 命令。](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/create-subscriber.html)

在您的请求中，使用这些参数为订阅者指定以下设置：
+ 对于 `sources`，请指定您希望订阅用户访问的每个来源。
+ 对于`subscriberIdentity`，请指定订阅者用于访问源数据的 AWS 帐户 ID 和外部 ID。
+ 对于`subscriber-name`，请指定订阅者的名称。
+ 对于 `accessTypes`，请指定 `S3`。

**示例 1**

以下示例创建了一个订阅者，该订阅者可以访问当前 AWS 区域中针对某个 AWS 源的指定订阅者身份的数据。

```
$ aws securitylake create-subscriber \ 
--subscriber-identity {"accountID": 1293456789123,"externalId": 123456789012} \
--sources [{"awsLogSource": {"sourceName": VPC_FLOW, "sourceVersion": 2.0}}] \
--subscriber-name subscriber name \
--access-types S3
```

**示例 2**

以下示例创建了一个订阅者，该订阅者可以访问当前 AWS 区域中自定义来源的指定订阅者身份。

```
$ aws securitylake create-subscriber \ 
--subscriber-identity {"accountID": 1293456789123,"externalId": 123456789012} \
--sources [{"customLogSource": {"sourceName": custom-source-name, "sourceVersion": 2.0}}] \
--subscriber-name subscriber name
--access-types S3
```

前面的示例是针对 Linux、macOS 或 Unix 进行格式化的，它们使用反斜杠 (\$1) 行继续符来提高可读性。

（可选）创建订阅者后，使用[CreateSubscriberNotification](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_CreateSubscriberNotification.html)操作来指定当您希望订阅者访问的源有新数据写入数据湖时，如何通知订阅者。如果您使用的是 AWS Command Line Interface (AWS CLI)，请运行该[create-subscriber-notification](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/create-subscriber-notification.html)命令。
+ 要覆盖默认通知方式（HTTPS 端点）并创建 Amazon SQS 队列，请指定 `sqsNotificationConfiguration` 参数的值。
+ 如果您更喜欢使用 HTTPS 端点发送通知，请指定 `httpsNotificationConfiguration` 参数的值。
+ `targetRoleArn`在该字段中，指定您为调用 EventBridge API 目标而创建的 IAM 角色的 ARN。

```
$ aws securitylake create-subscriber-notification \
--subscriber-id "12345ab8-1a34-1c34-1bd4-12345ab9012" \
--configuration httpsNotificationConfiguration={"targetRoleArn"="arn:aws:iam::XXX:role/service-role/RoleName", "endpoint"="https://account-management.$3.$2.securitylake.aws.dev/v1/datalake"}
```

要获取`subscriberID`，请使用 Security Lake API 的[ListSubscribers](https://docs.aws.amazon.com//security-lake/latest/APIReference/API_ListSubscribers.html)操作。如果你使用的是 AWS Command Line Interface (AWS CLI)，请运行 [list-subscriber 命令。](https://docs.aws.amazon.com/cli/latest/reference/securitylake/list-subscribers.html)

```
$ aws securitylake list-subscribers
```

------

要随后更改订阅者的通知方式（Amazon SQS 队列或 HTTPS 终端节点），请使用[UpdateSubscriberNotification](https://docs.aws.amazon.com/security-lake/latest/APIReference/API_UpdateSubscriberNotification.html)操作，或者，如果您使用的是 AWS CLI，则运行命令。[update-subscriber-notification](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/securitylake/update-subscriber-notification.html)您也可以使用 Security Lake 控制台更改通知方式：在**订阅用户**页面上选择订阅用户，然后选择**编辑**。

## 对象通知消息示例
<a name="sample-notification"></a>

以下示例以 JSON 结构格式显示了`CreateSubscriberNotification`操作的事件通知。

```
{
  "source": "aws.s3",
  "time": "2021-11-12T00:00:00Z",
  "account": "123456789012",
  "region": "ca-central-1",
  "resources": [
    "arn:aws:s3:::amzn-s3-demo-bucket"
  ],
  "detail": {
    "bucket": {
      "name": "amzn-s3-demo-bucket"
    },
    "object": {
      "key": "example-key",
      "size": 5,
      "etag": "b57f9512698f4b09e608f4f2a65852e5"
    },
    "request-id": "N4N7GDK58NMKJ12R",
    "requester": "securitylake.amazonaws.com"
  }
}
```