本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置
在本章中,您将使用 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
设置数据转换作业权限
-
如果您还没有,请创建源和输出 Amazon S3 存储桶。Amazon S3 存储桶必须与服务位于同一 AWS 区域,并且必须为所有选项开启阻止公共访问。要了解更多信息,请参阅使用 Amazon Amazon S3 阻止公共访问。必须使用客户管理的 AWS KMS 密钥来加密任务输出。要了解有关使用 AWS KMS 密钥的更多信息,请参阅 Amazon 密钥管理服务。
-
使用以下信任策略为其创建数据访问服务角色, 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" } } } ] } -
向数据访问角色添加权限策略,该策略授予对源存储桶的读取权限、对输出存储桶的写入 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