跨服务困惑副预防 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

跨服务困惑副预防

混淆代理问题是一个安全问题,即没有执行操作权限的实体可能会迫使更具权限的实体执行该操作。在 Amazon 中,跨服务模拟可能会导致混淆代理问题。一个服务(呼叫服务) 调用另一项服务(所谓的服务)时,可能会发生跨服务模拟。可以操纵调用服务,使用其权限以在其他情况下该服务不应有访问权限的方式对另一个客户的资源进行操作。为了防止这种情况,Amazon 提供可帮助您保护所有服务的服务委托人数据的工具,这些服务委托人有权限访问账户中的资源。

使用全局条件键限制权限

我们建议使用aws:SourceArnaws:SourceAccount资源策略中的全局条件密钥,以限制亚马逊的权限 SageMaker 为资源提供了另一项服务。如果你同时使用全局条件密钥和aws:SourceArn值包含账户 ID,aws:SourceAccount值和中的账户aws:SourceArn值在同一策略语句中使用相同的账户 ID。如果您只希望将一个资源与跨服务访问相关联,请使用 aws:SourceArn。如果您想允许该账户中的任何资源与跨服务使用操作相关联,请使用 aws:SourceAccount

防范混淆代理问题最有效的方法是使用aws:SourceArn具有资源的完整 ARN 的全局条件密钥。如果不知道资源的完整 ARN,或者正在指定多个资源,请使用aws:SourceArn带通配符的全局条件键 (*) 对于 ARN 的未知部分。例如,arn:aws:sagemaker:*:123456789012:*

以下示例说明如何使用aws:SourceArnaws:SourceAccount中的全局条件键 SageMaker 以防范混淆代理人问题。

{ "Version": "2012-10-17", "Statement": { "Sid": "ConfusedDeputyPreventionExamplePolicy", "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, # Specify an action and resource policy for another service "Action": "service:ActionName", "Resource": [ "arn:aws:service:::ResourceName/*" ], "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:*" }, "StringEquals": { "aws:SourceAccount": "123456789012" } } } }

跨服务混淆副预防 SageMaker 边缘管理器

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 通过帐号创建的边缘管理器123456789012在地区us-west-2.

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:*" } } } ] }

您可以替换aws:SourceArn在此模板中包含一个特定打包作业的完整 ARN 以进一步限制权限。

跨服务混淆副预防 SageMaker 推理

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 实时无服务器, 和异步的推理。请注意,因为账号是账号的一部分aws:SourceArn值,您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:*" } } } }

不要更换aws:SourceArn在此模板中包含特定模型或端点的完整 ARN。ARN 必须采用以上提供的格式。ARN 模板中的星号不代表通配符,不应更改。

跨服务混淆副预防 SageMaker Marketplace

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 通过账号创建的 Marketplace 资源123456789012在地区us-west-2. 请注意,由于账号在 ARN 中,因此您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:*" } } } ] }

不要更换aws:SourceArn在此模板中包含特定算法或模型包的完整 ARN。ARN 必须采用以上提供的格式。ARN 模板中的星号确实代表通配符,涵盖了验证步骤中的所有训练作业、模型和批量转换作业,以及发布到的算法和模型包 SageMaker Marketplace。

跨服务混淆副预防 SageMaker 新

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 由帐号创建的 Neo 编译工作123456789012在地区us-west-2. 请注意,由于账号在 ARN 中,因此您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:compilation-job/*" } } } ] }

您可以替换aws:SourceArn在此模板中包含一个特定编译作业的完整 ARN 以进一步限制权限。

跨服务混淆副预防 SageMaker 工作室

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 通过帐号创建的工作室123456789012在地区us-west-2. 请注意,因为账号是账号的一部分aws:SourceArn值,您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:*" } } } ] }

不要更换aws:SourceArn在此模板中包含特定 Studio 应用程序、用户配置文件或域的完整 ARN。ARN 必须采用以上提供的格式。ARN 模板中的星号不代表通配符,不应更改。

跨服务混淆副预防 SageMaker 管道

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键SageMaker 管道使用来自一个或多个管道的管道执行记录。请注意,由于账号在 ARN 中,因此您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:partition:sagemaker:region:123456789012:pipeline/mypipeline/*" } } } ] }

不要更换aws:SourceArn在此模板中包含特定管道执行的完整 ARN。ARN 必须采用以上提供的格式。这些区域有:partition占位符应该指定Amazon商业分区(aws) 或者Amazon在中国分区 (aws-cn),具体取决于管道的执行位置。同样,regionARN 中的占位符可以是任意有效地区哪里 SageMaker 管道可用。

ARN 模板中的星号确实代表通配符,涵盖名为的管道的所有管道执行mypipeline. 如果您想允许AssumeRole账户中所有管道的权限123456789012而不是一个特定的管道,那么aws:SourceArn将是arn:aws:sagemaker:*:123456789012:pipeline/*.

跨服务混淆副预防 SageMaker 处理任务

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 处理由账号创建的作业123456789012在地区us-west-2. 请注意,由于账号在 ARN 中,因此您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:processing-job/*" } } } ] }

您可以替换aws:SourceArn在此模板中包含一个特定处理作业的完整 ARN 以进一步限制权限。

跨服务混淆副预防 SageMaker 训练任务

以下示例说明如何使用aws:SourceArn防止跨服务混淆副问题的全局条件关键 SageMaker 通过账号创建的培训职位123456789012在地区us-west-2. 请注意,由于账号在 ARN 中,因此您无需指定aws:SourceAccount值。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "ArnLike": { "aws:SourceArn": "arn:aws:sagemaker:us-west-2:123456789012:training-job/*" } } } ] }

您可以替换aws:SourceArn在此模板中包含一个特定培训作业的完整 ARN 以进一步限制权限。

后续步骤

有关管理执行角色的更多信息,请参阅SageMaker 角色.