View a markdown version of this page

设置 - AWS HealthLake

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

设置

在本章中,您将使用 AWS 管理控制台 来设置开始使用 AWS HealthLake 数据转换和运行数据转换作业所需的权限。

注册获取 AWS 账户

要开始使用 AWS,您需要一个 AWS 帐户。有关创建 AWS 账户的信息,请参阅《AWS 账户管理参考指南》中的AWS 账户入门

将 IAM 用户或角色配置为使用 HealthLake 数据转换

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "healthlake:CreateDataTransformationProfile", "healthlake:GetDataTransformationProfile", "healthlake:UpdateDataTransformationProfile", "healthlake:PublishDataTransformationProfile", "healthlake:ListDataTransformationProfileVersions", "healthlake:UpdateProfileWithAgent", "healthlake:TransformData", "healthlake:ValidateSource", "healthlake:StartDataTransformationJob", "healthlake:DescribeDataTransformationJob", "healthlake:DeleteDataTransformationProfile", "healthlake:ListDataTransformationProfiles", "healthlake:ListDataTransformationJobs" ], "Resource": "*" } ] }

对于生产,请将资源范围限定为特定的配置文件和作业 ARN,而不是*。

设置执行数据转换任务的权限

在运行批量数据转换任务之前,您必须授予访问源和输出 Amazon Amazon S3 存储桶的 HealthLake 权限。要授予 HealthLake 访问权限,您需要创建一个 IAM 服务角色,添加 HealthLake 允许代入该角色的信任策略,并附加一个权限策略,该策略授予对源数据的读取权限和对输出位置的写入权限。

启动数据转换任务时,您需要为参数指定该角色的 Amazon 资源名称 (ARN)。 DataAccessRoleArn 有关 IAM 角色和信任策略的更多信息,请参阅 IAM 角色

如果您已经为 HealthLake 导入或导出任务创建了数据访问角色,则可以重复使用该角色:为您的源和输出 Amazon S3 存储桶添加以下步骤 3 中列出的权限。

注意

此角色既用于独立转换作业 (StartDataTransformationJob),也用于复合转换和采集作业(StartFHIRImportJob 使用 a)。 ProfileId

设置数据转换作业权限

  1. 如果您还没有,请创建源和输出 Amazon S3 存储桶。Amazon S3 存储桶必须与服务位于同一 AWS 区域,并且必须为所有选项开启阻止公共访问。要了解更多信息,请参阅使用 Amazon Amazon S3 阻止公共访问。必须使用客户管理的 AWS KMS 密钥来加密任务输出。要了解有关使用 AWS KMS 密钥的更多信息,请参阅 Amazon 密钥管理服务

  2. 使用以下信任策略为其创建数据访问服务角色, HealthLake 并向该 HealthLake服务授予代入该角色的权限。

    注意

    将 123456789012 替换为你的账户 ID。 AWS

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "healthlake.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" } } } ] }
  3. 向数据访问角色添加权限策略,该策略授予对源存储桶的读取权限、对输出存储桶的写入 AWS KMS 权限以及加密和解密数据所需的权限。将存储桶名称和 AWS KMS 密钥 ARN 替换为您自己的值。

    { "Version": "2012-10-17", "Statement": [ { "Sid": "ReadSourceData", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-source-bucket", "arn:aws:s3:::amzn-s3-demo-source-bucket/*" ] }, { "Sid": "WriteOutputData", "Effect": "Allow", "Action": [ "s3:PutObject", "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-output-bucket", "arn:aws:s3:::amzn-s3-demo-output-bucket/*" ] }, { "Sid": "KMSPermissions", "Effect": "Allow", "Action": [ "kms:Decrypt", "kms:GenerateDataKey", "kms:DescribeKey" ], "Resource": "arn:aws:kms:us-west-2:123456789012:key/your-kms-key-id" } ] }

权限说明:

  • 源存储桶ListBucket 上的 s3: GetObject 和 s3:: HealthLake允许读取您的输入文件。

  • s3:PutObject 在输出存储桶上: HealthLake 允许写入转换后的 FHIR 文件、错误报告、清单和偏差报告。

  • 输出存储桶ListBucket 上的 s3: GetObject 和 s3:: HealthLake允许在多步处理期间读取中间转换结果。

  • kms: decrypt:如果您的源存储 HealthLake 桶使用客户管理的密钥,则允许解密源文件。 AWS KMS

  • kmsGenerateDataKey:: HealthLake 允许使用您在中指定的 AWS KMS 密钥对输出文件进行加密 OutputDataConfig.S3Configuration.KmsKeyId。

  • kmsDescribeKey:: HealthLake 允许验证 AWS KMS 密钥是否有效且可访问。

重要

如果您的源和输出是同一个存储桶,则可以将 Amazon S3 语句合并为一个。如果他们使用不同的 AWS KMS 密钥,请为每个密钥 ARN 添加单独的 AWS KMS 语句。

提示

对于生产,请尽可能缩小资源值的范围:指定您的任务使用的确切的 Amazon S3 前缀,而不是授予对整个存储桶的访问权限。

有关数据存储设置的详细信息,请参阅设置。 AWS HealthLake