

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

# 在 Security Lake 中创建具有数据访问权限的订阅者的先决条件
<a name="prereqs-creating-subscriber"></a>

您必须实现以下先决条件才能在 Security Lake 中创建具有数据访问权限的订阅用户。

## 验证权限
<a name="create-data-access-subscriber-permissions"></a>

要验证您的权限，请使用 IAM 查看附加到 IAM 身份的 IAM 策略。然后，将这些策略中的信息与以下（权限）操作列表进行比较。在新数据被写入数据湖时，您必须执行这些操作才能通知订阅用户。

您需要获得执行以下操作的权限：
+ `iam:CreateRole`
+ `iam:DeleteRolePolicy`
+ `iam:GetRole`
+ `iam:PutRolePolicy`
+ `lakeformation:GrantPermissions`
+ `lakeformation:ListPermissions`
+ `lakeformation:RegisterResource`
+ `lakeformation:RevokePermissions`
+ `ram:GetResourceShareAssociations`
+ `ram:GetResourceShares`
+ `ram:UpdateResourceShare`

除了上表之外，您还需要获得执行以下操作的权限：
+ `events:CreateApiDestination`
+ `events:CreateConnection`
+ `events:DescribeRule`
+ `events:ListApiDestinations`
+ `events:ListConnections`
+ `events:PutRule`
+ `events:PutTargets`
+ `s3:GetBucketNotification`
+ `s3:PutBucketNotification`
+ `sqs:CreateQueue`
+ `sqs:DeleteQueue`
+ `sqs:GetQueueAttributes`
+ `sqs:GetQueueUrl`
+ `sqs:SetQueueAttributes`

## 获取订阅用户的外部 ID
<a name="subscriber-external-id"></a>

要创建订阅者，除了订阅者的 AWS 账户 ID 之外，您还需要获取他们的*外部 ID*。外部 ID 是订阅用户提供给您的唯一标识符。Security Lake 会将外部 ID 添加到其创建的订阅用户 IAM 角色中。在 Security Lake 控制台中通过 API 或 AWS CLI创建订阅用户时，您需要使用外部 ID。

有关外部的更多信息 IDs，请参阅 *IAM 用户指南*中的[如何在向第三方授予 AWS 资源访问权限时使用外部 ID](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user_externalid.html)。



**重要**  
如果您打算使用 Security Lake 控制台添加订阅用户，可以跳过下一步，继续执行[在 Security Lake 中创建具有数据访问权限的订户](create-subscriber-data-access.md)。Security Lake 控制台提供了简化的入门流程，可以为您创建所有必要的 IAM 角色或使用现有角色。  
如果您计划使用 Security Lake API 或 AWS CLI 添加订阅者，请继续执行下一步创建用于调用 EventBridge API 目标的 IAM 角色。

## 创建 IAM 角色以调用 EventBridge API 目标（ AWS CLI仅限 API 和步骤）
<a name="iam-role-subscriber"></a>

如果您通过 API 或使用 Security Lake AWS CLI，请在 AWS Identity and Access Management (IAM) 中创建一个角色，授予亚马逊调用 API 目标和向正确的 HTTPS 终端节点发送对象通知的 EventBridge 权限。

此 IAM 角色创建完成后，您需要提供角色的 Amazon 资源名称 (ARN) 才能创建订阅用户。如果订阅用户轮询某个 Amazon Simple Queue Service (Amazon SQS) 队列中的数据或直接从 AWS Lake Formation中查询数据，则不需要使用这一 IAM 角色。有关此类型的数据访问方法（访问类型）的更多信息，请参阅[管理 Security Lake 订阅用户的查询访问权限](subscriber-query-access.md)。

将以下策略附加到您的 IAM 角色：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowInvokeApiDestination",
            "Effect": "Allow",
            "Action": [
                "events:InvokeApiDestination"
            ],
            "Resource": [
            "arn:aws:events:us-east-1:123456789012:api-destination/AmazonSecurityLake*/*"
            ]
        }
    ]
}
```

------

将以下信任策略附加到您的 IAM 角色 EventBridge 以允许代入该角色：

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "AllowEventBridgeToAssume",
            "Effect": "Allow",
            "Principal": {
                "Service": "events.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Security Lake 会自动创建一个 IAM 角色，允许订阅用户从数据湖读取数据（或者从 Amazon SQS 队列中轮询事件，如果这是首选的通知方式）。此角色受名为的 AWS 托管策略保护[`AmazonSecurityLakePermissionsBoundary`](security-iam-awsmanpol.md#security-iam-awsmanpol-AmazonSecurityLakePermissionsBoundary)。