我们不再更新 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操作的使用权限。有效值为
Allow
和Deny
。默认情况下,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、、、、、G 和GetEvaluation操作DescribeDataSources来读取数据源escribeMLModelsDescribeBatchPredictionsDescribeEvaluations、GetDataSource机器学习模型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:允许用户创建机器学习资源
以下策略允许用户或组通过 CreateDataSourceFromS3
、CreateDataSourceFromRedshift
、CreateDataSourceFromRDS
、CreateMLModel
、CreateBatchPrediction
和 CreateEvaluation
操作,创建机器学习数据源、ML 模型、批量预测和评估。您不能将这些操作的权限限制为特定资源。
{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": [ "machinelearning:CreateDataSourceFrom*", "machinelearning:CreateMLModel", "machinelearning:CreateBatchPrediction", "machinelearning:CreateEvaluation" ], "Resource": [ "*" ] }] }
示例 3:允许用户创建和删除实时终端节点以及对 ML 模型执行实时预测
以下策略允许用户或组对该模型执行 CreateRealtimeEndpoint
、DeleteRealtimeEndpoint
和 Predict
操作,以创建和删除实时终端节点以及为特定 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账户中的特定资源,方法是授予他们对您账户中的这些资源执行UpdateDataSource
UpdateMLModel
UpdateBatchPrediction
UpdateEvaluation
DeleteDataSource
DeleteMLModel
、DeleteBatchPrediction
、、、、、和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": [ "*" ] }] }