對 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. 創建 Redshift 集羣使用AWS Management Console或AWS Command Line Interface(AWS CLI。務必將AWS Identity and Access Management(IAM) 政策。有關將 Amazon Redshift ML 與 Amazon SageMaker 結合使用所需的權限的更多信息,請參閲將 Amazon Redshift 機器學習 (ML) 與 Amazon SageMaker 搭配使用所需的許可

  2. 通過以下方式之一創建與 Amazon SageMaker 一起使用 Amazon Redshift ML 所需的 IAM 角色:

    • 一個簡單的操作是使用AmazonS3FullAccessAmazonSageMakerFullAccess策略與 Amazon Redshift ML 一起使用。

    • 我們建議您通過 Amazon Redshift 控制台建立 IAM 角色,該控制台具有AmazonRedshiftAllCommandsFullAccess策略,具有運行 SQL 命令(如創建模型)的權限。Amazon Redshift 使用基於 API 的無縫機制以編程方式在AWS 帳戶代表您執行。Amazon Redshift 自動附加現有AWS管理政策添加至 IAM 角色。這種方法意味着您可以留在 Amazon Redshift 控制台中,而不必切換到 IAM 控制台進行角色創建。如需詳細資訊,請參閱「」創建 IAM 角色作為 Amazon Redshift 的默認角色

      將 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-idyour-role,和your-s3-bucket值是指作為「創建模型」命令一部分指定的值。

      (可選)使用AWS KMS鍵部分,如果您指定了AWS KMS鍵,同時使用 Amazon Redshift ML。所以此your-kms-key值是作為「創建模型」命令一部分使用的鍵。

      { "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:::<your-s3-bucket>/*", "arn:aws:s3:::redshift-downloads/*" ] }, { "Effect": "Allow", "Action": [ "s3:GetBucketLocation", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::<your-s3-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" ] }, "Action": "sts:AssumeRole" } ] }
  4. (可選)建立 Amazon S3 儲存儲體和AWS KMS鍵。這些是 Amazon Redshift 用於存儲發送給 Amazon SageMaker 的訓練數據,並從 Amazon SageMaker 接收訓練的模型。

  5. (可選)創建 IAM 角色和 Amazon S3 存儲桶的不同組合,以控制對不同用户組的訪問。

  6. (可選)為 Redshift 集羣啟用 VPC 路由時,請為 Redshift 集羣所在的 VPC 創建 Amazon S3 終端節點和 SageMaker 終端節點。這樣做可以讓流量在 CREATE MODEL 期間在服務之間通過 VPC 運行。如需 VPC 路由的詳細資訊,請參。Amazon Redshift 中的增強型 VPC 路由

    如需為超參數調校作業指定私有 VPC 所需的權限的詳細資訊,請參與 Amazon SageMaker 一起使用 Amazon Redshift ML 所需的權限

有關如何使用 CREATE MODEL 語句開始為不同用例創建模型的信息,請參閲建立模型

管理許可和所有權

與其他數據庫對象(如表或函數)一樣,Amazon Redshift 將創建和使用 ML 模型綁定到訪問控制機制。創建運行預測函數的模型具有單獨的權限。

以下示例使用了兩個用户組,retention_analyst_grp(模型創建者)和marketing_analyst_grp(模型用户)來説明 Amazon Redshift 如何管理訪問控制。保留分析師創建機器學習模型,其他用户組可以通過獲取的權限使用這些模型。

超級用户可以使用以下語句授予 USER 或 GROUP 創建機器學習模型的權限。

GRANT CREATE MODEL TO GROUP retention_analyst_grp;

具有此權限的用户或組可以在羣集中的任何架構中創建模型,如果用户對 SCHEMA 具有通常的 CREATE 權限。機器學習模型與表、視圖、過程和用户定義函數相似,是模式層次結構的一部分。

假設架構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 權限授予市場銷售分析-GRP 組使用模型的權限。

GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;

將 REVOKE 語句與創建模型和執行結合使用,從用户或組撤消這些權限。如需許可控制命令的詳細資訊,請參。GRANTREVOKE