

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

# 用于注册位置的角色的要求
<a name="registration-role"></a>

注册亚马逊简单存储服务 AWS Identity and Access Management (Amazon S3) 位置时，必须指定 (IAM) 角色。 AWS Lake Formation 在访问该位置的数据时担任该角色。

您可以使用以下角色类型之一来注册位置：
+ Lake Formation 服务相关角色。此角色授予对该位置的所需权限。使用此角色是注册位置的最简单方法。有关更多信息，请参阅[在 Lake Formation 中使用服务相关角色](service-linked-roles.md)和[服务相关角色限制](service-linked-role-limitations.md)。
+ 用户定义的角色。当您需要授予的权限多于服务相关角色提供的权限时，请使用用户定义的角色。

  在以下情况下，您必须使用用户定义的角色：
  + 在其他账户中注册位置时。

    有关更多信息，请参阅[在另一个 AWS 账户中注册 Amazon S3 营业地点](register-cross-account.md)和[跨 AWS 账户注册加密的 Amazon S3 位置](register-cross-encrypted.md)。
  + 如果您使用 AWS 托管 CMK (`aws/s3`) 对 Amazon S3 位置进行加密。

    有关更多信息，请参阅 [注册加密的 Amazon S3 位置](register-encrypted.md)。
  + 如果您计划使用 Amazon EMR。

    如果您已使用服务相关角色注册了某个位置，并且想要开始使用 Amazon EMR 访问该位置，则必须取消注册该位置，然后使用用户定义的角色重新注册该位置。有关更多信息，请参阅 [取消注册 Amazon S3 位置](unregister-location.md)。

以下是用户定义的角色的要求：
+ 创建新角色时，在 IAM 控制台的**创建角色**页面上，选择 **AWS 服务**，然后在**选择一个使用案例**下选择 **Lake Formation**。

  如果使用其他路径创建角色，请确保该角色与 `lakeformation.amazonaws.com` 具有信任关系。有关更多信息，请参阅[修改角色信任策略（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_update-role-trust-policy.html)。
+ 该角色必须具有授予 Amazon S3 read/write 对该位置的权限的内联策略。以下是典型的策略。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Effect": "Allow",
              "Action": [
                  "s3:PutObject",
                  "s3:GetObject",
                  "s3:DeleteObject"
              ],
              "Resource": [
                  "arn:aws:s3:::awsexamplebucket/*"
              ]
          },
          {
              "Effect": "Allow",
              "Action": [
                  "s3:ListBucket"
              ],
              "Resource": [
                  "arn:aws:s3:::awsexamplebucket"
              ]
          }
      ]
  }
  ```

------
+ 将以下信任策略添加到 IAM 角色，以便 Lake Formation 服务代入该角色并将临时凭证提供给集成的分析引擎。

  要在 CloudTrail 日志中包含 IAM Identity Center 用户上下文，信任策略必须具有该`sts:SetContext`操作的权限。

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

****  

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

------
+ 注册该位置的数据湖管理员必须具有对该角色的 `iam:PassRole` 权限。

  以下是授予此权限的内联策略。{{<account-id>}}替换为有效的 AWS 账号，然后{{<role-name>}}替换为角色的名称。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "PassRolePermissions",
              "Effect": "Allow",
              "Action": [
                  "iam:PassRole"
              ],
              "Resource": [
                  "arn:aws:iam::{{111122223333}}:role/{{<role-name>}}"
              ]
          }
      ]
  }
  ```

------
+ 要允许 Lake Formati CloudWatch on 在日志中添加日志并发布指标，请添加以下内联策略。
**注意**  
写入 CloudWatch 日志会产生费用。

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

****  

  ```
  {
      "Version":"2012-10-17",		 	 	 
      "Statement": [
          {
              "Sid": "Sid1",
              "Effect": "Allow",
              "Action": [
                  "logs:CreateLogStream",
                  "logs:CreateLogGroup",
                  "logs:PutLogEvents"
              ],
              "Resource": [
                   "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:/aws-lakeformation-acceleration/*",
                   "arn:aws:logs:{{us-east-1}}:{{111122223333}}:log-group:/aws-lakeformation-acceleration/*:log-stream:*"
              ]
          }
      ]
  }
  ```

------