控制对 Amazon 机器学习资源的访问权限——使用 IAM - Amazon Machine Learning

我们不再更新 Amazon Machine Learning 服务,也不再接受新用户使用该服务。本文档可供现有用户使用,但我们不会再对其进行更新。有关更多信息,请参阅什么是 Amazon Machine Learning

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

控制对 Amazon 机器学习资源的访问权限——使用 IAM

AWS Identity and Access Management (IAM) 使您能够安全地控制用户对AWS服务和资源的访问权限。使用IAM,您可以创建和管理AWS用户、群组和角色,并使用权限来允许和拒绝他们访问AWS资源。通过IAM与 Amazon Machine Learning (Amazon ML) 配合使用,您可以控制组织中的用户是否可以使用特定AWS资源以及他们是否可以使用特定的亚马逊机器学习操作执行任务。API

IAM 让您能够:

  • 在您的AWS账户下创建用户和群组。

  • 为您的 AWS 账户下的每个用户分配唯一的安全凭证

  • 控制每个用户使用 AWS 资源执行任务的权限

  • 轻松与AWS账户中的用户共享您的AWS资源

  • 为您的AWS账户创建角色并管理其权限,以定义可以担任这些角色的用户或服务

  • 您可以在中创建角色IAM并管理权限,以控制担任该角色的实体或AWS服务可以执行哪些操作。您也可以定义由哪个实体承担该角色。

如果您的组织已经拥有IAM身份,则可以使用它们来授予使用AWS资源执行任务的权限。

有关 IAM 的更多信息,请参阅 IAM 用户指南

IAM 策略语法

IAM策略是由一个或多个声明组成的JSON文档。每个语句具有以下结构:

{ "Statement":[{ "Effect":"effect", "Action":"action", "Resource":"arn", "Condition":{ "condition operator":{ "key":"value" } } }] }

策略语句包含以下元素:

  • 效果:控制您稍后将在语句中指定的资源和API操作的使用权限。有效值为 AllowDeny。默认情况下,IAM用户无权使用资源和API操作,因此所有请求都将被拒绝。显式 Allow 将覆盖默认值。显式 Deny 将覆盖任意 Allows

  • 操作:您授予或拒绝权限的一个或多个具体API操作。

  • Resource:受操作影响的资源。要在语句中指定资源,请使用其 Amazon 资源名称 (ARN)。

  • 条件(可选):控制您的策略何时生效。

为了简化IAM策略的创建和管理,您可以使用AWS策略生成器和IAM策略模拟器。

为 Amazon MLAmazon ML 指定IAM策略操作

在IAM策略声明中,您可以为任何支持的服务指定API操作IAM。当您为 Amazon ML API 操作创建政策声明时,请在API操作名称前machinelearning:面加上,如以下示例所示:

  • machinelearning:CreateDataSourceFromS3

  • machinelearning:DescribeDataSources

  • machinelearning:DeleteDataSource

  • machinelearning:GetDataSource

要在单个语句中指定多项操作,请使用逗号将它们隔开:

"Action": ["machinelearning:action1", "machinelearning:action2"]

您也可以使用通配符指定多项操作。例如,您可以指定名称以单词“Get”开头的所有操作:

"Action": "machinelearning:Get*"

要指定所有 Amazon ML 操作,请使用 * 通配符:

"Action": "machinelearning:*"

有关亚马逊机器学习API操作的完整列表,请参阅《亚马逊机器学习API参考》。

在IAM政策中指定 ARNs Amazon ML 资源

IAM 策略语句应用到一个或多个资源。您可以根据策略为其指定资源ARNs。

要为 Amazon 机器学习资源指定,请使用以下格式:ARNs

"资源": arn:aws:machinelearning:region:account:resource-type/identifier

以下示例说明如何指定 common ARNs。

数据源 ID:my-s3-datasource-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:datasource/my-s3-datasource-id

ML 模型 ID:my-ml-model-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/my-ml-model-id

批量预测 ID:my-batchprediction-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/my-batchprediction-id

评估 ID:my-evaluation-id

"Resource": arn:aws:machinelearning:<region>:<your-account-id>:evaluation/my-evaluation-id

亚马逊政策示例 MLs

示例 1:允许用户读取机器学习资源元数据

以下策略允许用户或群组通过对指定资源执行 D、、、、、GGetEvaluation操作DescribeDataSources来读取数据源escribeMLModelsDescribeBatchPredictionsDescribeEvaluationsGetDataSource机器学习模型etMLModelGetBatchPrediction、批量预测和评估的元数据。Describe * 操作权限无法限定为特定资源。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:Get*" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:datasource/S3-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:datasource/REDSHIFT-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/BP-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:evaluation/EV-ID1" ] }, { "Effect": "Allow", "Action": [ "machinelearning:Describe*" ], "Resource": [ "*" ] }] }

示例 2:允许用户创建机器学习资源

以下策略允许用户或组通过 CreateDataSourceFromS3CreateDataSourceFromRedshiftCreateDataSourceFromRDSCreateMLModelCreateBatchPredictionCreateEvaluation 操作,创建机器学习数据源、ML 模型、批量预测和评估。您不能将这些操作的权限限制为特定资源。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:CreateDataSourceFrom*", "machinelearning:CreateMLModel", "machinelearning:CreateBatchPrediction", "machinelearning:CreateEvaluation" ], "Resource": [ "*" ] }] }

示例 3:允许用户创建和删除实时终端节点以及对 ML 模型执行实时预测

以下策略允许用户或组对该模型执行 CreateRealtimeEndpointDeleteRealtimeEndpointPredict 操作,以创建和删除实时终端节点以及为特定 ML 模型执行实时预测。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:CreateRealtimeEndpoint", "machinelearning:DeleteRealtimeEndpoint", "machinelearning:Predict" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL" ] }] }

示例 4:允许用户更新和删除特定资源

以下策略允许用户或群组更新和删除您AWS账户中的特定资源,方法是授予他们对您账户中的这些资源执行UpdateDataSourceUpdateMLModelUpdateBatchPredictionUpdateEvaluationDeleteDataSourceDeleteMLModelDeleteBatchPrediction、、、、、和DeleteEvaluation操作的权限。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:Update*", "machinelearning:DeleteDataSource", "machinelearning:DeleteMLModel", "machinelearning:DeleteBatchPrediction", "machinelearning:DeleteEvaluation" ], "Resource": [ "arn:aws:machinelearning:<region>:<your-account-id>:datasource/S3-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:datasource/REDSHIFT-DS-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:mlmodel/ML-MODEL-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:batchprediction/BP-ID1", "arn:aws:machinelearning:<region>:<your-account-id>:evaluation/EV-ID1" ] }] }

示例 5:允许任何亚马逊 MLaction

以下策略允许用户或组使用任意 Amazon ML 操作。由于此策略会授予对您的机器学习资源的全部访问权限,您应该将其限制为仅对管理员可用。

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:*" ], "Resource": [ "*" ] }] }