安全性和访问控制 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

安全性和访问控制

借助 Amazon SageMaker 功能商店,您可以创建两种类型的商店:在线商店或离线商店。在线商店用于低延迟的实时推理用例,而离线商店则用于训练和批量推理使用案例。当您创建供在线或离线使用的要素组时,您可以提供Amazon Key Management Service用于加密所有静态数据的客户托管密钥。如果您不提供Amazon KMSkey 然后我们确保您的数据在服务器端使用Amazon拥有的Amazon KMS键或Amazon管理Amazon KMS键。创建功能组时,您可以选择存储类型并可以选择提供Amazon KMS密钥用于加密数据,然后你可以调用各种 API 进行数据管理,例如PutRecordGetRecordDeleteRecord.

功能商店允许您在功能组级别授予或拒绝个人的访问权限,并启用对功能商店的跨账户访问权限。例如,您可以设置开发人员账户以访问离线商店,以进行模型训练和探索,而这些账户没有对生产账户的写入权限。您可以设置生产账户以访问线上和线下商店。功能商店使用独特的客户Amazon KMS用于离线和在线存储静态数据加密的密钥。访问控制可通过 API 和Amazon KMS密钥访问。您还可以创建要素组级访问控制。

有关客户托管密钥的更多信息,请参阅客户托管密钥. 有关 Amazon KMS 的更多信息,请参阅Amazon KMS

使用Amazon KMSAmazon SageMaker Feature Store 的权限

静态加密保护下的功能商店Amazon KMS客户托管密钥。默认情况下,它将Amazon拥有的在线商店的客户管理密钥和AmazonOblineStore 的客户托管密钥. 功能商店支持在下面加密在线或离线商店的选项客户托管密钥. 创建在线或离线商店时,您可以为功能商店选择客户管理的密钥,而且每个商店可能会有所不同。

仅支持要素商店对称客户托管密钥. 您无法使用非对称客户托管密钥加密在线或离线商店中的数据。要获取确定客户托管密钥是对称还是非对称的帮助,请参阅识别对称密钥和非对称客户托管密钥.

当您使用客户托管密钥时,您可以利用以下功能:

您无需支付的月费Amazon拥有客户托管密钥。客户托管密钥将产生费用对于每次 API 调用和Amazon Key Management Service配额适用于每个客户托管密钥。

授权为您的在线商店使用客户管理密钥

如果您使用客户托管密钥为保护您的在线商店,该客户托管密钥的策略必须赋予功能商店代表您使用该功能商店的权限。您可以完全控制客户托管密钥的策略和授权。

要素商店无需额外授权即可使用默认设置。Amazon拥有 KMS 密钥保护您的在线或线下商店Amazonaccount.

客户托管密钥策略

当你选择客户托管密钥为保护您的在线商店,功能商店必须具有代表做出选择的委托人使用客户托管密钥的权限。该委托人(用户或角色)必须具有功能商店所需的客户托管密钥权限。您可以在密钥策略IAM 策略授权中提供这些权限。要素 Store 至少需要对客户托管密钥具备以下权限:

  • “KMS:加密”、“KMS: Decrypt”、“KMS: describe Key”、“KMS: 创建格兰特”、“KMS: 退休补助金”、“KMS: 重新加密”、“KMS: RecryptTo”、“KMS: ListGrant”、“KMS: ListGrant”、“KMS: ListGrant”、“KMS: ListGrant””

例如,以下示例密钥策略仅提供所需的权限。该策略具有以下效果:

  • 允许功能商店在加密操作中使用客户托管密钥并创建授权,但仅当它代表账户中具备功能商店使用权限的委托人行事时才可如此。如果策略语句中指定的委托人无权使用您的功能商店,调用将失败,即使调用来自功能商店服务也是如此。

  • 这些区域有:kms:ViaService条件键仅当 FeatuRestore 代表策略语句中所列委托人发出请求时,才允许权限。这些委托人不能直接调用这些操作。的价值kms:ViaService应为sagemaker.*.amazonaws.com.

    注意

    这些区域有:kms:ViaService状况密钥只能用于客户管理的在线商店Amazon KMSkey,且不能用于离线商店。如果您将此特殊条件添加到客户管理的密钥中,并使用相同的Amazon KMS在线和离线商店的 key,那么它将失败CreateFeatureGroupAPI 操作。

  • 赋予客户托管密钥管理员对客户托管密钥的只读访问权限,以及撤销授权的权限,包括功能商店保护数据所使用的授权。

在使用示例密钥策略之前,请将示例委托人替换为 Amazon 账户中的实际委托人。

{"Id": "key-policy-feature-store", "Version":"2012-10-17", "Statement": [ {"Sid" : "Allow access through Amazon SageMaker Feature Store for all principals in the account that are authorized to use Amazon SageMaker Feature Store", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:user/featurestore-user"}, "Action": [ "kms:Encrypt", "kms:Decrypt", "kms:DescribeKey", "kms:CreateGrant", "kms:RetireGrant", "kms:ReEncryptFrom", "kms:ReEncryptTo", "kms:GenerateDataKey", "kms:ListAliases", "kms:ListGrants" ], "Resource": "*", "Condition": {"StringLike": {"kms:ViaService" : "sagemaker.*.amazonaws.com" } } }, {"Sid": "Allow administrators to view the customer managed key and revoke grants", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::111122223333:role/featurestore-admin" }, "Action": [ "kms:Describe*", "kms:Get*", "kms:List*", "kms:RevokeGrant" ], "Resource": "*" }, {"Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789:root" }, "Action": "kms:*", "Resource": "*" } ] }

使用授权来授权特色商店

除密钥策略以外,功能商店还使用授权来对客户托管密钥设置权限。要查看有关您的账户中客户托管密钥的授权,请使用ListGrantsoperation. 要素商店无需授权或任何额外权限即可使用Amazon客户拥有托管密钥以保护你的在线商店。

功能存储在执行后台系统维护和连续数据保护任务时使用授予权限。

每项授权都特定于在线商店。如果账户中包含多个使用同一客户管理密钥加密的商店,则每个账户将有唯一的授权FeatureGroup使用相同的客户托管密钥。

该密钥策略还可以允许账户撤销授予在客户托管密钥上。但是,如果您对某个活动加密在线商店撤销授权,功能商店将无法保护和维护该商店。

监控功能商店与之交互Amazon KMS

如果您使用客户托管密钥为了保护你的在线或线下商店,你可以使用Amazon CloudTrail用于跟踪功能商店发送到的请求的日志Amazon KMS代表您。

访问在线商店中的数据

这些区域有:调用者(IAM 用户或 IAM 角色)所有数据平面操作(放置、获取、删除记录)必须具备客户托管密钥的以下权限:

"kms:Decrypt"

授权为离线商店使用客户管理密钥

这些区域有:roleArn这将作为参数传递到createFeatureGroup必须对离线商店 KmsKeyId 具有以下权限:

"kms:GenerateDataKey"
注意

在线商店的关键政策也适用于离线商店,只有在kms:ViaService未指定条件。

重要

您可以指定Amazon KMS加密密钥,用于在创建功能组时加密用于离线要 feature store 的 Amazon S3 位置。如果Amazon KMS未指定加密密钥,默认情况下,我们使用Amazon KMS键。通过定义存储桶级密钥对于上证,你可以减少Amazon KMS请求成本高达 99%。