

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

# 设置 AWS HealthLake
<a name="getting-started-setting-up"></a>

在本章中，您将使用 AWS 管理控制台 来设置开始使用 AWS HealthLake 和创建数据存储所需的权限。要设置创建数据存储的权限，您需要创建一个既是数据湖管理员又 HealthLake 是管理员的 IAM 用户或角色。您可以在 Lake Formation 中将此用户设置为数据 AWS 湖管理员。数据湖管理员授予 Lake Formation 访问使用亚马逊 Athena 查询数据存储所需的资源的权限。创建 HealthLake数据存储后，您可以设置导入和导出文件的权限。

**Topics**
+ [注册获取 AWS 账户](#sign-up-for-aws)
+ [创建具有管理访问权限的用户](#create-an-admin)
+ [配置要使用的 IAM 用户或角色 HealthLake （IAM 管理员）](#setting-up-configure-iam)
+ [在 Lake Formation 中添加用户或角色作为数据湖管理员（IAM 管理员）](#setting-up-add-lake-formation)
+ [创建 S3 存储桶](#setting-up-create-s3-buckets)
+ [创建数据存储](#setting-up-create-data-store)
+ [为导入任务设置权限](#setting-up-import-permissions)
+ [为导出任务设置权限](#setting-up-export-permissions)
+ [安装 AWS CLI](#setting-up-install-cli)

## 注册获取 AWS 账户
<a name="sign-up-for-aws"></a>

如果您没有 AWS 账户，请完成以下步骤来创建一个。

**要注册 AWS 账户**

1. 打开[https://portal.aws.amazon.com/billing/注册。](https://portal.aws.amazon.com/billing/signup)

1. 按照屏幕上的说明操作。

   在注册时，将接到电话或收到短信，要求使用电话键盘输入一个验证码。

   当您注册时 AWS 账户，就会创建*AWS 账户根用户*一个。根用户有权访问该账户中的所有 AWS 服务 和资源。作为最佳安全实践，请为用户分配管理访问权限，并且只使用根用户来执行[需要根用户访问权限的任务](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)。

AWS 注册过程完成后会向您发送一封确认电子邮件。您可以随时前往 [https://aws.amazon.com/](https://aws.amazon.com/)并选择 “**我的账户”，查看您当前的账户活动并管理您的账户**。

## 创建具有管理访问权限的用户
<a name="create-an-admin"></a>

注册后，请保护您的安全 AWS 账户 AWS 账户根用户 AWS IAM Identity Center，启用并创建管理用户，这样您就不会使用 root 用户执行日常任务。

**保护你的 AWS 账户根用户**

1.  选择 **Root 用户**并输入您的 AWS 账户 电子邮件地址，以账户所有者的身份登录。[AWS 管理控制台](https://console.aws.amazon.com/)在下一页上，输入您的密码。

   要获取使用根用户登录方面的帮助，请参阅《AWS 登录 用户指南》**中的 [Signing in as the root user](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)。

1. 为您的根用户启用多重身份验证（MFA）。

   有关说明，请参阅 I [A *M* 用户指南中的为 AWS 账户 根用户启用虚拟 MFA 设备（控制台）](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)。

**创建具有管理访问权限的用户**

1. 启用 IAM Identity Center。

   有关说明，请参阅**《AWS IAM Identity Center 用户指南》中的[启用 AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)。

1. 在 IAM Identity Center 中，为用户授予管理访问权限。

   有关使用 IAM Identity Center 目录 作为身份源的教程，请参阅《[用户*指南》 IAM Identity Center 目录中的使用默认设置配置AWS IAM Identity Center 用户*访问权限](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)。

**以具有管理访问权限的用户身份登录**
+ 要使用您的 IAM Identity Center 用户身份登录，请使用您在创建 IAM Identity Center 用户时发送到您的电子邮件地址的登录 URL。

  有关使用 IAM Identity Center 用户[登录的帮助，请参阅*AWS 登录 用户指南*中的登录 AWS 访问门户](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)。

**将访问权限分配给其他用户**

1. 在 IAM Identity Center 中，创建一个权限集，该权限集遵循应用最低权限的最佳做法。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Create a permission set](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)。

1. 将用户分配到一个组，然后为该组分配单点登录访问权限。

   有关说明，请参阅《AWS IAM Identity Center 用户指南》**中的 [Add groups](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)。

## 配置要使用的 IAM 用户或角色 HealthLake （IAM 管理员）
<a name="setting-up-configure-iam"></a>

**角色：IAM 管理员**  
可以创建 IAM 用户和角色并可以添加数据湖管理员的用户。

本主题中的这些步骤必须由 IAM 管理员执行。

要将您的 HealthLake 数据存储连接到 Athena，您需要创建一个既是数据湖管理员又是管理员的 IAM 用户或角色。 HealthLake 此新用户或角色授予通过 AWS Lake Formation 访问数据存储中资源的权限，并将`AmazonHealthLakeFullAccess` AWS 托管策略添加到其用户或角色中。

**重要**  
身为数据湖管理员的 IAM 用户或角色*无法*创建新的数据湖管理员。要添加其他数据湖管理员，您必须使用已被授予`AdministratorAccess`访问权限的 IAM 用户或角色。

**创建管理员**

1. 将 **AmazonHealthlakeFullAccess** IAM AWS 托管策略添加到组织中的用户或角色。

   如果您不熟悉创建 IAM 用户，请参阅 IA [M 用户指南中的创建 I AWS AM 用户](https://docs.aws.amazon.com//IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console)[*和 IAM* 策略概述](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)。

1. 向 IAM 用户或角色授予访问 AWS Lake Formation 的访问权限。
   + 向组织中的用户或角色添加以下 IAM AWS 托管策略：**AWSLakeFormationDataAdmin**
**注意**  
该`AWSLakeFormationDataAdmin`政策允许访问所有 AWS Lake Formation 资源。建议您始终使用完成任务所需的最低权限。有关更多信息，请参阅《IAM 用户指南》**中的 [IAM 最佳实操](https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html)。

1. 向用户或角色添加以下内联策略。有关更多信息，请参阅 *IAM 用户指南*中的[内联策略](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#inline-policies)。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "s3:GetObject",
                   "s3:PutObject"
               ],
               "Resource": [
                   "arn:aws:s3:::amzn-s3-demo-source-bucket/*",
                   "arn:aws:s3:::amzn-s3-demo-logging-bucket/*"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "ram:GetResourceShareInvitations",
                   "ram:AcceptResourceShareInvitation",
                   "glue:CreateDatabase",
                   "glue:DeleteDatabase"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

有关该`AWSLakeFormationDataAdmin`政策的更多信息，请参阅 [Lake Formation *开发者指南中的 La AWS ke Formation* 角色和 IAM 权限参考](https://docs.aws.amazon.com/)。

## 在 Lake Formation 中添加用户或角色作为数据湖管理员（IAM 管理员）
<a name="setting-up-add-lake-formation"></a>

**注意**  
如果您要集成，则必须执行此步骤[SQL 索引和查询](integrating-athena.md)。

接下来，IAM 管理员必须将上一步中创建的用户或角色添加为 Lake Formation 中的数据湖管理员。

**将 IAM 用户或角色添加为数据湖管理员**

1. 打开 AWS Lake Formation 控制台：[https://console.aws.amazon.com/lakeformation/](https://console.aws.amazon.com/lakeformation/)
**注意**  
如果这是你第一次访问 Lake Formation，则会出现一个 “**欢迎来到 Lake Form** ation” 对话框，要求你定义 Lake Formation 管理员。  

![\[要求您定义湖泊形成管理员的对话框的图像\]](http://docs.aws.amazon.com/zh_cn/healthlake/latest/devguide/images/lf-landing-page.png)


1. 将新用户或角色分配为 AWS Lake Formation 数据湖管理员。
   + *选项 1：*如果你收到了 “**欢迎来到 Lake Formation**” 对话框。

     1. 选择**添加其他 AWS 用户或角色**。

     1. 选择向**下箭头 (▼)**。

     1. 选择你想同时成为 Lake Formation 管理员的管理员。 HealthLake 

     1. 选择**开始**。
   + *选项 2：*使用**导航窗格 (☰)**。

     1. 选择**导航窗格 (☰)**。

     1. 在 “**权限**” 下，选择 “**管理角色和任务**”。

     1. 在**数据湖管理员**部分中，选择**选择管理员**。

     1. 在 “**管理数据湖管理员**” 对话框中，选择向**下箭头 (▼)**。

     1. 接下来，选择或搜索您也想成为 Lake Formation HealthLake 管理员的管理员用户或角色。

     1. 选择**保存**。

1. 将默认安全设置更改为由 Lake Formation 管理。 HealthLake 数据存储资源需要由 Lake Formation 管理，*而不是* IAM 管理。要进行更新，请参阅 La *AWS ke Formation 开发者指南*中的[更改默认权限模型](https://docs.aws.amazon.com/lake-formation/latest/dg/getting-started-setup.html#setup-change-cat-settings)。

## 创建 S3 存储桶
<a name="setting-up-create-s3-buckets"></a>

要将 FHIR R4 数据导入 AWS HealthLake，建议使用两个 Amazon S3 存储桶。Amazon S3 输入存储桶保存要导入和从该存储桶 HealthLake 读取的 FHIR 数据。Amazon S3 输出存储桶存储导入任务的处理结果并向该存储桶 HealthLake 写入（日志）。

**注意**  
根据 AWS Identity and Access Management (IAM) 政策，您的 Amazon S3 存储桶名称必须是唯一的。有关更多信息，请参阅*《Amazon Simple Storage Service 用户指南》*中的[存储桶命名规则](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucketnamingrules.html)。

出于本指南的目的，我们在本节后面设置[导入权限](#setting-up-import-permissions)时指定以下 Amazon S3 输入和输出存储桶。
+ 输入存储桶: `arn:aws:s3:::amzn-s3-demo-source-bucket`
+ 输出桶：`arn:aws:s3:::amzn-s3-demo-logging-bucket`

有关更多信息，请参阅*《Amazon S3 用户指南》*中的[创建存储桶](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)。

## 创建数据存储
<a name="setting-up-create-data-store"></a>

 HealthLake 数据存储是驻留在单个 AWS 区域内的 FHIR R4 数据的存储库。一个 AWS 账户可以有零个或多个数据存储。 HealthLake 支持两种数据存储[授权策略]()。

**重要提示**  
在创建 HealthLake 数据存储之前，请查看 AWS 组织中可能限制 HealthLake 资源创建或管理的[服务控制策略 (SCPs)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)。 SCPs 即使您的 IAM 权限设置正确，也可能阻止成功创建 HealthLake 数据存储。  
创建 HealthLake 数据存储时会生成 A。`datastoreID`在本节稍后设置[导入权限`datastoreID`](#setting-up-import-permissions)时，必须使用。

要创建 HealthLake 数据存储，请参阅[创建 HealthLake 数据存储](managing-data-stores-create.md)。

## 为导入任务设置权限
<a name="setting-up-import-permissions"></a>

在将文件导入数据存储之前，必须授予访问您在 Amazon S3 中的输入和输出存储桶的 HealthLake 权限。要授予 HealthLake 访问权限，您需要为创建一个 IAM 服务角色 HealthLake，向该角色添加信任策略以授予 HealthLake 代入角色权限，并向角色附加权限策略以授予其访问您的 Amazon S3 存储桶的权限。

 创建导入任务时，您可以为指定该角色的 Amazon 资源名称 (ARN)。`DataAccessRoleArn`有关 IAM 角色和信任策略的更多信息，请参阅 [IAM 角色](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html)。

设置权限后，您就可以通过导入任务将文件导入数据存储了。有关更多信息，请参阅 [启动 FHIR 导入任务](importing-fhir-data-start.md)。

**设置导入权限**

1. 如果还没有，请为输出日志文件创建一个目标 Amazon S3 存储桶。Amazon S3 存储桶必须与服务位于同一 AWS 区域，并且必须为所有选项开启阻止公共访问。要了解更多信息，请参阅[使用 Amazon S3 阻止公共访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)。还必须使用亚马逊拥有或客户拥有的 KMS 密钥进行加密。要了解有关使用 KMS 密钥的更多信息，请参阅 [Amazon 密钥管理服务](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

1. 使用以下信任策略为其创建数据访问服务角色， HealthLake 并向该 HealthLake 服务授予代入该角色的权限。 HealthLake 使用它来写入输出 Amazon S3 存储桶。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "healthlake.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "accountID"
                   },
                   "ArnEquals": {
                       "aws:SourceArn": "arn:aws:healthlake:us-west-2:111122223333:datastore/fhir/datastoreID"
                   }
               }
           }
       ]
   }
   ```

------

1. 向数据访问角色添加权限策略，使其能够访问 Amazon S3 存储桶。`amzn-s3-demo-bucket`替换为存储桶的名称。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Action": [
               "s3:ListBucket",
               "s3:GetBucketPublicAccessBlock",
               "s3:GetEncryptionConfiguration"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-source-bucket"
           ],
           "Effect": "Allow"
       },
       {
           "Action": [
               "s3:PutObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-logging-bucket/*"
           ],
           "Effect": "Allow"
       },
       {
           "Action": [
               "kms:DescribeKey",
               "kms:GenerateDataKey*"
           ],
           "Resource": [
               "arn:aws:kms:us-east-1:012345678910:key/d330e7fc-b56c-4216-a250-f4c43ef46e83"
           ],
           "Effect": "Allow"
       }]
   }
   ```

------

## 为导出任务设置权限
<a name="setting-up-export-permissions"></a>

在从数据存储中导出文件之前，您必须授予访问您在 Amazon S3 中的输出存储桶的 HealthLake 权限。要授予 HealthLake 访问权限，您需要为创建一个 IAM 服务角色HealthLake，向该角色添加信任策略以授予 HealthLake 代入角色权限，并向角色附加权限策略以授予其访问您的 Amazon S3 存储桶的权限。

如果您已经为创建了角色 HealthLake，则可以重复使用该角色，并向其授予本主题中列出的导出 Amazon S3 存储桶的额外权限。要了解有关 IAM 角色和信任策略的更多信息，请参阅 [IAM 策略和权限](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html)。

**重要提示**  
HealthLake 支持[本机 SDK 导出请求](exporting-fhir-data.md)和 [FHIR R4 操作`$export`](reference-fhir-operations-export.md)。根据您决定使用的导出 API，必须提供单独的 IAM 操作。这允许您分别处理`allow`和`deny`权限。如果您想限制 HealthLake 软件开发工具包和 FHIR REST API 的导出，则必须对单独的 IAM 操作应用拒绝权限。如果您授予用户完全访问权限，则无需更改 IAM 用户的权限 HealthLake。  
以下本机 HealthLake 操作可用于使用 AWS CLI 和从数据存储中导出数据 AWS SDKs：
`StartFHIRExportJob`
`DescribeFHIRExportJob`
`ListFHIRExportJobs`
以下 IAM 操作可用于从数据存储中导出 HealthLake 数据以及使用 FHIR `$export` 操作取消（删除）导出任务：
`POST`:  
`StartFHIRExportJobWithPost`
`GET`:  
`StartFHIRExportJobWithGet`
`DescribeFHIRExportJobWithGet`
`GetExportedFile`
`DELETE`:  
`CancelFHIRExportJobWithDelete`

设置权限的用户或角色必须具有创建角色、创建策略和将策略附加到角色的权限。以下 IAM 策略授予这些权限。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Action": [
                "iam:CreateRole",
                "iam:CreatePolicy",
                "iam:AttachRolePolicy"
            ],
            "Effect": "Allow",
            "Resource": "*"
        },
        {
            "Action": "iam:PassRole",
            "Effect": "Allow",
            "Resource": "*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "healthlake.amazonaws.com"
                }
            }
        }
    ]
}
```

------

**设置导出权限**

1. 如果还没有，请为要从数据存储中导出的数据创建一个目标 Amazon S3 存储桶。Amazon S3 存储桶必须与服务位于同一 AWS 区域，并且必须为所有选项开启阻止公共访问。要了解更多信息，请参阅[使用 Amazon S3 阻止公共访问](https://docs.aws.amazon.com/AmazonS3/latest/dev/access-control-block-public-access.html)。还必须使用亚马逊拥有或客户拥有的 KMS 密钥进行加密。要了解有关使用 KMS 密钥的更多信息，请参阅 [Amazon 密钥管理服务](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html)。

1. 如果您尚未创建数据访问服务角色，请使用以下信任策略为 HealthLake 该 HealthLake 服务授予代入该角色的权限。 HealthLake使用它来写入输出 Amazon S3 存储桶。如果您已经在中创建了一个存储桶[为导入任务设置权限](#setting-up-import-permissions)，则可以在下一步中重复使用该存储桶并向其授予访问您的 Amazon S3 存储桶的权限。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": [
                       "healthlake.amazonaws.com"
                   ]
               },
               "Action": "sts:AssumeRole",
               "Condition": {
                   "StringEquals": {
                       "aws:SourceAccount": "accountID"
                   },
                   "ArnEquals": {
                       "aws:SourceArn": "arn:aws:healthlake:us-west-2:111122223333:datastore/fhir/data store ID"
                   }
               }
           }
       ]
   }
   ```

------

1. 向数据访问角色添加权限策略，使其能够访问您的输出 Amazon S3 存储桶。`amzn-s3-demo-bucket`替换为存储桶的名称。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [{
           "Action": [
               "s3:ListBucket",
               "s3:GetBucketPublicAccessBlock",
               "s3:GetEncryptionConfiguration"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-source-bucket"
           ],
           "Effect": "Allow"
       },
       {
           "Action": [
               "s3:PutObject"
           ],
           "Resource": [
               "arn:aws:s3:::amzn-s3-demo-logging-bucket/*"
           ],
           "Effect": "Allow"
       },
       {
           "Action": [
               "kms:DescribeKey",
               "kms:GenerateDataKey*"
           ],
           "Resource": [
               "arn:aws:kms:us-east-1:012345678910:key/d330e7fc-b56c-4216-a250-f4c43ef46e83"
           ],
           "Effect": "Allow"
       }]
   }
   ```

------

## 安装 AWS CLI
<a name="setting-up-install-cli"></a>

 AWS CLI 是描述和列出 HealthLake 导入和导出任务属性所必需的。您也可以使用索取此信息 HealthLake SDKs。

**要设置 AWS CLI**

1. 下载并配置 AWS CLI。有关说明，请参阅*AWS Command Line Interface 用户指南*中的以下主题。
   + [安装或更新最新版本的 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)
   + [开始使用 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html)

1. 在 AWS CLI `config`文件中，为管理员添加已命名的配置文件。运行 AWS CLI 命令时使用此配置文件。根据最低权限的安全原则，我们建议您创建一个单独的 IAM 角色，该角色具有特定于正在执行的任务的权限。有关已命名配置文件的更多信息，请参阅*《AWS Command Line Interface 用户指南》*中的[配置和凭证文件设置](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

   ```
   [default]
   aws_access_key_id = default access key ID
   aws_secret_access_key = default secret access key
   region = region
   ```

1. 请使用以下 `help` 命令验证设置：

   ```
   aws healthlake help
   ```

   如果配置 AWS CLI 正确，您将看到的简要说明 AWS HealthLake 和可用命令的列表。