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

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

安全性和访问控制

Amazon SageMaker Feature Store使您能够创建两种类型的商店:在线商店或离线商店。在线存储用于低延迟实时推理使用案例,而脱机存储用于训练和批处理推理使用案例。当您创建用于联机或离线使用的功能组时,可以提供 KMS 客户主密钥 (CMK) 来加密静态所有数据。如果您未提供 CMK,我们会确保您的数据在服务器端使用 AWS 拥有的 CMK 或 AWS 托管 CMK 进行加密。在创建功能组时,您可以选择存储类型并选择性地提供用于加密数据的 CMK,然后您可以调用各种 APIs进行数据管理,例如 PutRecord GetRecord、、DeleteRecord。 

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

有关 的更多信息CMKs,请参阅客户管理的密钥。有关 KMS 的更多信息,请参阅 KMS。 

对 使用 KMS 权限 Amazon SageMaker Feature Store

静态加密可在 AWS KMS 客户主密钥 (CMK) Feature Store 下提供保护。默认情况下,它使用适用于 的 AWS 拥有的 CMK OnlineStore 和适用于 的 AWS OfflineStore 托管 CMK。 Feature Store 支持使用客户托管的 CMKs 加密在线或离线存储的选项。 您可以在创建在线或离线存储Feature Store时为 选择 CMK,并且每个存储的 CMK 可能不同。 

Feature Store 仅支持对称 CMKs 。 您不能使用非对称 CMK 来加密在线或离线存储中的数据。有关确定 CMK 是对称还是非对称的帮助,请参阅确定对称和非对称CMKs。

在使用客户托管 CMK 时,您可以利用以下功能:

您无需支付 AWS 拥有的 的月费CMKs。 客户管理的 为每个 API 调用CMKs产生费用,并且 AWS KMS 配额适用于这些 CMKs. 

授权将您的 CMK 用于您的在线商店

如果您使用客户托管 CMK 保护在线商店,则该 CMK 的策略必须授予 代表您使用它Feature Store的权限。您对客户托管 CMK 的策略和授权拥有完全控制权。 

Feature Store 不需要额外的授权即可使用 defaultAWS 拥有的 CMK 来保护您的 AWS 账户中的在线或离线存储。 

客户托管 CMK 密钥策略

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

  • “kms:Encrypt”、“kms:Decrypt”、“kms:DescribeKey”、“kms:CreateGrant”、“kms:RetireGrant”、“kms:ReEncryptFrom”、“kms:ReEncryptTo”、“kens:GenerateDataKey”、“kms:ListAliasesrants”、“kms:ListGrantsrants:RevokeGrant

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

  • 允许 Feature Store 在加密操作中使用 CMK 并创建授权,但前提是它代表账户中有权使用您的 Feature Store 的委托人。如果策略语句中指定的委托人无权使用您的 Feature Store ,调用将失败,即使调用来自 Feature Store 服务也是如此。 

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

    注意

    kms:ViaService 条件键只能用于在线存储客户托管 KMS 密钥,不能用于离线存储。如果您将此特殊条件添加到客户管理的密钥,并对在线和离线存储使用相同的 KMS 密钥,则它将使 CreateFeatureGroup API 操作失败。

  • 向 CMK 管理员授予对 CMK 的只读访问权限和撤销授权的权限,包括 Feature Store 用来保护您的数据的授权。 

  • 为 Feature Store 提供对 CMK 的只读访问权限。在这种情况下,Feature Store 可以直接调用这些操作。而不必代表账户委托人行事。 

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

{"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 CMK 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":  "Allow Feature Store to get information about the CMK",       "Effect": "Allow",       "Principal": {"Service":["sagemaker.amazonaws.com"]       },       "Action": [         "kms:Describe*",         "kms:Get*",         "kms:List*"       ],       "Resource": "*"     }, {"Sid": "Enable IAM User Permissions", "Effect": "Allow", "Principal": {"AWS": "arn:aws:iam::123456789:root" }, "Action": "kms:*", "Resource": "*" }   ] }

使用授权来授权功能存储

除了密钥策略之外,Feature Store 使用授权来设置对客户托管 CMK 的权限。要查看您的账户中 CMK 的授权,请使用ListGrants 操作。Feature Store 不需要授权或任何其他权限即可使用 AWS 拥有的 CMK 来保护您的在线商店。 

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

每个授权特定于一个在线商店。如果账户包含使用相同 CMK 加密的多个存储,则每个FeatureGroup使用相同 CMK 将具有唯一的授权。

该密钥策略还可以允许账户撤销对 CMK 的授权。但是,如果您在活动的加密在线存储上撤销授权, Feature Store 将无法保护和维护该存储。 

监控 功能存储与 AWS KMS 的交互

如果您使用客户托管 CMK 来保护在线或离线存储,则可以使用 AWS CloudTrail 日志来跟踪 Feature Store 代表您AWS KMS发送到 的请求。 

访问您的在线商店中的数据

ALL 操作(Put、Get、)的DataPlane调用方(IAM 用户或 IAM DeleteRecord 角色)必须具有对客户托管 CMK 的以下权限:

"kms:Decrypt"

授权将您的 CMK 用于脱机商店

作为参数传递给 roleArncreateFeatureGroup 必须对 具有以下权限OfflineStoreKmsKeyId:

"kms:GenerateDataKey"
注意

在线存储的密钥策略也仅适用于离线存储,仅当未指定kms:ViaService条件时。