針對 Amazon Redshift ML 管理進行叢集和組態設定 - Amazon Redshift

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

針對 Amazon Redshift ML 管理進行叢集和組態設定

在您使用 Amazon Redshift ML 之前,請先完成叢集設定並設定使用 Amazon Redshift ML 的許可。

使用 Amazon Redshift ML 的叢集設定

使用 Amazon Redshift ML 之前,請先完成以下先決條件。

身為 Amazon Redshift 管理員,請執行下列一次性設定。

若要為 Amazon Redshift ML 執行一次性叢集設定

  1. 使用 AWS Management Console 或 AWS Command Line Interface (AWS CLI) 建立 Redshift 叢集。請務必在建立叢集時附加 AWS Identity and Access Management (IAM) 原則。如需將 Amazon Redshift ML 與 Amazon 搭配使用所需許可的詳細資訊 SageMaker,請參閱將亞馬 Amazon Redshift 機器學習 (ML) 與 Amazon 搭配使用所需的許可。 SageMaker

  2. 以下列其中一種方式建立使用 Amazon Redshift ML 所需的IAM角色:

    • 一個簡單的操作是創建一個IAM角色AmazonS3FullAccessAmazonSageMakerFullAccess政策,以便與 Amazon Redshift ML 一起使用。如果您打算同時建立預測模型,也可以將 AmazonForecastFullAccess 政策附加至您的角色。

    • 我們建議您透過 Amazon Redshift 主控台建立IAM角色,該主控台具有執行SQL命令的AmazonRedshiftAllCommandsFullAccess政策,例如CREATEMODEL。Amazon Redshift 使用無縫式機API制,以程式設計方式代表您 AWS 帳戶 建立IAM角色。Amazon Redshift 會自動將現有的 AWS 受管政策附加到該IAM角色。這種方法表示您可以保留在 Amazon Redshift 主控台內,而不必切換到IAM主控台進行角色建立。如需詳細資訊,請參閱建立 Amazon Redshift 的預設IAM角色做為預設角色。

      當IAM角色建立為叢集的預設值時,請包含redshift為資源名稱的一部分,或使用 RedShift-特定標籤來標記這些資源。

      如果您的叢集已開啟增強型 Amazon VPC 路由功能,您可以使用透過 Amazon Redshift 主控台建立的IAM角色。此IAM角色已附加AmazonRedshiftAllCommandsFullAccess原則,並將下列權限新增至策略。這些額外的許可允許 Amazon Redshift 在您的帳戶中建立和刪除 elastic network interface (ENI),並將其附加到 Amazon EC2 或 Amazon ECS 上執行的編譯任務。如此一來,Amazon S3 儲存貯體中的物件只能從虛擬私有雲 (VPC) 內存取,且網際網路存取遭到封鎖。

      { "Effect": "Allow", "Action": [ "ec2:DescribeVpcEndpoints", "ec2:DescribeDhcpOptions", "ec2:DescribeVpcs", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups", "ec2:DescribeNetworkInterfaces", "ec2:DeleteNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateNetworkInterface", "ec2:ModifyNetworkInterfaceAttribute" ], "Resource": "*" }
    • 如果您想要建立具有更嚴格策略的IAM角色,可以使用以下策略。您也可以修改此政策以因應您的需求。

      Amazon S3 儲存貯體 redshift-downloads/redshift-ml/ 是用於其他步驟和範例之範例資料的儲存所在位置。如果您不需要從 Amazon S3 載入資料,則可以將其移除。或者,也可以將其取代為您用來將資料載入 Amazon Redshift 的其他 Amazon S3 儲存貯體。

      所以此 your-account-id, 您的角色amzn-s3-demo-bucket值是您指定為指CREATEMODEL令一部分的值。

      (選擇性) 如果您在使用 Amazon Redshift ML 時指定 AWS KMS 金鑰,請使用 AWS KMS 範例政策的金鑰區段。所以此 your-kms-key value 是您用來做為CREATEMODEL指令一部分的索引鍵。

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "cloudwatch:PutMetricData", "ecr:BatchCheckLayerAvailability", "ecr:BatchGetImage", "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DescribeLogStreams", "logs:PutLogEvents", "sagemaker:*Job*" ], "Resource": "*" }, { "Effect": "Allow", "Action": [ "iam:PassRole", "s3:AbortMultipartUpload", "s3:GetObject", "s3:DeleteObject", "s3:PutObject" ], "Resource": [ "arn:aws:iam::<your-account-id>:role/<your-role>", "arn:aws:s3:::amzn-s3-demo-bucket/*", "arn:aws:s3:::redshift-downloads/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket, "arn:aws:s3:::redshift-downloads" ] } // Optional section needed if you use AWS KMS keys. ,{ "Effect": "Allow", "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:DescribeKey", "kms:Encrypt", "kms:GenerateDataKey*" ], "Resource": [ "arn:aws:kms:<your-region>:<your-account-id>:key/<your-kms-key>" ] } ] }
  3. 若要允許 Amazon Redshift 並 SageMaker 假設該角色與其他服務互動,請將下列信任政策新增至該IAM角色。

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "redshift.amazonaws.com", "sagemaker.amazonaws.com", "forecast.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  4. (選擇性) 建立 Amazon S3 儲存貯體和 AWS KMS 金鑰。這些是供 Amazon Redshift 用於存儲發送到 Amazon 的培訓數據, SageMaker 並從 Amazon SageMaker 接收訓練過的模型。

  5. (選擇性) 建立不同的IAM角色和 Amazon S3 儲存貯體組合,以控制對不同使用者群組的存取。

  6. (選擇性) 為 Redshift 叢集開啟VPC路由功能時,請為 Redshift 叢集所在的位置建立 Amazon S3 SageMaker 端點和端點。VPC這樣做可以使流量在服務VPC之間運行CREATEMODEL。如需有關VPC路由的詳細資訊,請參閱 Amazon Redshift 中的增強型VPC路由功能

    如需為超參數調整任務指定私有權限所需許可的VPC詳細資訊,請參閱將 Amazon Redshift ML 與 Amazon 搭配使用所需的許可。 SageMaker

如需如何使用CREATEMODEL陳述式開始針對不同使用案例建立模型的資訊,請參閱CREATE MODEL

管理許可和擁有權

就像其他資料庫物件 (例如資料表或函數) 一樣,Amazon Redshift 會繫結建立和使用機器學習模型來存取控制機制。建立執行預測函數的模型有不同的許可。

下列範例使用兩個使用者群組 retention_analyst_grp (模型建立者) 和 marketing_analyst_grp (模型使用者) 來說明 Amazon Redshift 如何管理存取控制。保留分析師會建立機器學習模型,讓其他一組使用者可透過取得的許可使用這些模型。

超級使用者可以GRANTUSER或使用下列陳述式建立機器學習模型的GROUP權限。

GRANT CREATE MODEL TO GROUP retention_analyst_grp;

具有此使用權限的使用者或群組可以在叢集中的任何結構描述中建立模型 (如果使用者具有上的一般CREATE權限) SCHEMA。機器學習模型是結構描述階層的一部分,與資料表、檢視表、程序和使用者定義函數類似。

假設結構描述 demo_ml 已存在,請依照下列方式授予兩個使用者群組結構描述上的許可。

GRANT CREATE, USAGE ON SCHEMA demo_ml TO GROUP retention_analyst_grp;
GRANT USAGE ON SCHEMA demo_ml TO GROUP marketing_analyst_grp;

若要讓其他使用者使用您的機器學習推論功能,請授與EXECUTE權限。下列範例會使用此EXECUTE權限來授與使用模型的權限GROUP。

GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;

將REVOKE陳述式搭配CREATEMODEL和EXECUTE來撤銷使用者或群組的這些權限。如需許可控制命令的相關資訊,請參閱 GRANTREVOKE