控制 Amazon ML 資源的存取 - 使用 IAM - Amazon Machine Learning

我們不再更新 Amazon Machine Learning 服務或接受新使用者。本文件適用於現有使用者,但我們不再對其進行更新。如需詳細資訊,請參閱什麼是 Amazon Machine Learning

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

控制 Amazon ML 資源的存取 - 使用 IAM

AWS Identity and Access Management (IAM) 能讓您安全地控制使用者對 AWS 服務和資源的存取權限。搭配 Amazon Learning (Amazon Learning) 使用 IAM,您可以控制組織中的使用者是否可以使用特定的 AWS 資源。搭配 Amazon Learning (Amazon Learning) 使用 IAM 與 Amazon Machine Learning (Amazon ML),您可以控制組織中的使用者是否可以使用特定的 AWS 資源,以及是否可以使用特定的亞馬遜 ML 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 動作。

  • 資源:受動作影響的資源。若要在陳述式中指定資源,您可以使用它的 Amazon Resource Name (ARN)。

  • Condition (選用):控制您的政策何時生效。

若要簡化 IAM 政策的建立和管理,您可以使用 AWS 政策產生器和 IAM 政策模擬器。

為亞馬遜毫升指定 IAM 政策操作

在 IAM 政策陳述式中,您可以為任何支援 IAM 的服務指定 API 動作。當您為 Amazon Machine Learning API 動作建立政策陳述式時,請在字首machinelearning:API 動作名稱,如以下範例所示:

  • machinelearning:CreateDataSourceFromS3

  • machinelearning:DescribeDataSources

  • machinelearning:DeleteDataSource

  • machinelearning:GetDataSource

若要在單一陳述式中指定多個動作,請用逗號分隔:

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

您也可以使用萬用字元指定多個動作。例如,您可以指定名稱開頭有 "Get" 文字的所有動作:

"Action": "machinelearning:Get*"

若要指定所有的 Amazon Machine Learning 動作,請使用 * 萬用字元:

"Action": "machinelearning:*"

如需完整的 Amazon Machine Learning API 動作清單,請參閱Amazon Machine Learning API 參考

在 IAM 政策中為亞馬遜機器學習資源指定 ARN

IAM 政策聲明適用於一個或多個資源。您可以根據資源的 ARN 來為政策指定資源。

若要指定 Amazon ML 資源的 ARN,請使用下列格式:

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

以下範例說明如何指定常見的 ARN。

資料來源 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

用於 Amazon Machine Learning 的政策範例

範例 1:允許使用者讀取機器學習資源中繼資料

下列原則允許使用者或群組透過執行來讀取資料來源、ML 模型、批次預測和評估的中繼資料DescribeDataSourcesDescribeMLModelsDescribeBatchPredictionsDescribeEvaluationsGetDataSourceGetMLModelGetBatchPrediction,以及GetEvaluation對指定資源執行的動作。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:允許使用者更新和刪除特定資源

以下政策允許透過提供許可給使用者或群組,讓他們在您帳戶的這些資源上執行 UpdateDataSourceUpdateMLModelUpdateBatchPredictionUpdateEvaluationDeleteDataSourceDeleteMLModelDeleteBatchPredictionDeleteEvaluation 動作,更新和刪除您 AWS 帳戶中的特定資源。

{ "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:允許任何亞馬遜毫升

以下政策允許使用者或群組使用任何 Amazon ML 動作。由於此政策會授予您所有機器學習資源的完整存取權,因此僅限管理員使用。

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