高级访问控制 - 亚马逊 SageMaker AI

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

高级访问控制

Amazon SageMaker AI 支持基于属性的访问控制 (ABAC),从而使用 ABAC 策略对远程 Visual Studio Code 连接实现精细的访问控制。以下是远程 VS Code 连接的 ABAC 策略示例。

远程访问执行

使用 sagemaker:RemoteAccess 条件键控制对资源的访问。这得到CreateSpace和的支持UpdateSpace APIs。下面的示例使用了 CreateSpace

您可以确保用户无法创建启用了远程访问的空间。这通过默认采用限制性更强的访问设置,帮助维护安全性。以下策略确保用户能够:

  • 创建已明确禁用远程访问的新 Studio 空间

  • 无需指定任何远程访问设置即可创建新的 Studio 空间

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "DenyCreateSpaceRemoteAccessEnabled", "Effect": "Deny", "Action": [ "sagemaker:CreateSpace", "sagemaker:UpdateSpace" ], "Resource": "arn:aws:sagemaker:*:*:space/*", "Condition": { "StringEquals": { "sagemaker:RemoteAccess": [ "ENABLED" ] } } }, { "Sid": "AllowCreateSpace", "Effect": "Allow", "Action": [ "sagemaker:CreateSpace", "sagemaker:UpdateSpace" ], "Resource": "arn:aws:sagemaker:*:*:space/*" } ] }

基于标签的访问控制

实施基于标签的访问控制,以根据资源和主体标签来限制连接。

您可以确保用户只能访问适合其角色和项目分配的资源。利用以下策略,您可以:

  • 仅允许用户连接到与分配给他们的团队、环境和成本中心匹配的空间

  • 根据组织结构实施精细访问控制

在以下示例中,使用以下内容标记空间:

{ "Team": "ML", "Environment": "Production", "CostCenter": "12345" }

您可以创建一个包含以下策略的角色来匹配资源标签和主体标签:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "RestrictStartSessionOnTaggedSpacesInDomain", "Effect": "Allow", "Action": [ "sagemaker:StartSession" ], "Resource": [ "arn:aws:sagemaker:us-east-1:111122223333:space/domain-id/*" ], "Condition": { "StringEquals": { "aws:ResourceTag/Team": "${aws:PrincipalTag/Team}", "aws:ResourceTag/Environment": "${aws:PrincipalTag/Environment}", "aws:ResourceTag/CostCenter": "${aws:PrincipalTag/CostCenter}", "aws:ResourceTag/IDC_UserName": "${aws:PrincipalTag/IDC_UserName}" } } } ] }

当该角色的标签匹配时,用户有权启动会话并远程连接到其空间。有关更多信息,请参阅使用标签控制对 AWS 资源的访问