

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

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

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

**Topics**
+ [注册参加 AWS 账户](#sign-up-for-aws)
+ [配置要使用的 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 账户. 有关创建的信息 AWS 账户，请参阅《*AWS 账户管理 参考指南》 AWS 账户[中的 “](https://docs.aws.amazon.com/accounts/latest/reference/getting-started.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 用户，请参阅 IAM 用户指南[*中的*](https://docs.aws.amazon.com/IAM/latest/UserGuide/PoliciesOverview.html)[创建 AWS IAM 用户和 I AM 政策](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html#Using_CreateUser_console)概述。

1. 授予 IAM 用户或角色访问 AWS Lake Formation 的权限。
   + 向组织中的用户或角色添加以下 IAM AWS 托管策略：**AWSLakeFormationDataAdmin**
**注意**  
该`AWSLakeFormationDataAdmin`政策允许访问所有 AWS 湖泊形成资源。建议您始终使用完成任务所需的最低权限。有关更多信息，请参阅《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 开发人员指南](https://docs.aws.amazon.com/)*中的 L *AWS ake Formation 角色和 IAM 权限参考。

## 在 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，则会出现 “**欢迎来到湖泊形成**” 对话框，要求您定义湖泊形成管理员。  

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


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

     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 管理。要进行更新，请参阅 *AWS Lake 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 资源创建或管理的](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)服务控制策略 (SCP)。即使您的 IAM 权限设置正确，SCP 也会阻止成功创建 HealthLake 数据存储。  
当您创建 HealthLake 数据存储时，会生成 A。`datastoreID`在本节[后面设置](#setting-up-import-permissions)导入权限`datastoreID`时，必须使用。

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

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

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

 创建导入任务时，您可以为指定此角色的亚马逊资源名称 (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)。还必须使用 Amazon-owned 或客户拥有的 KMS 密钥进行加密。要了解有关使用 KMS 密钥的更多信息，请参阅[亚马逊密钥管理服务](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 SDK 和 FHIR REST API 的导出，则必须对单独的 IAM 操作申请拒绝权限。如果您向用户授予完全访问权限，则无需更改 IAM 用户权限 HealthLake。  
以下本机 HealthLake 操作可用于使用 AWS CLI 和 AWS SDK 从数据存储中导出数据：
`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)。还必须使用 Amazon-owned 或客户拥有的 KMS 密钥进行加密。要了解有关使用 KMS 密钥的更多信息，请参阅[亚马逊密钥管理服务](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>

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

**要设置 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 和列表。