管理设置 - Amazon Redshift
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

管理设置

在使用 Amazon Redshift ML 之前,请完成集群设置并配置使用 Amazon Redshift ML 的权限。

用于使用 Amazon Redshift ML 的集群设置

在使用 Amazon Redshift ML 之前,请先完成以下先决条件。

作为 Amazon Redshift 管理员,请执行以下一次性设置:

  1. 使用 Amazon 控制台或 Amazon Command Line Interface (Amazon CLI) 创建 Amazon Redshift 集群。您必须在创建集群时附加 Amazon Identity and Access Management (IAM) 策略。

  2. 您可以通过两种方法创建将 Amazon Redshift ML 与 Amazon SageMaker 一起使用所需的 IAM 角色。

    • 一个简单的方法是使用 AmazonS3FullAccessAmazonSageMakerFullAccess 创建 IAM 角色,以与 Amazon Redshift ML 一起使用。

    • 如果您要使用更具限制性的策略创建 IAM 角色,您可以使用以下策略。您还可以修改此策略以满足您的需求。

      { "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 Amazon 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" } ] }

    Amazon S3 存储桶 redshift-downloads/redshift-ml/ 是存储用于其他步骤和示例的示例数据的位置。如果您不需要从 Amazon S3 加载数据,您可以将其删除。或者,将其替换为您用于将数据加载到 Amazon Redshift 的其他 Amazon S3 存储桶。

    your-account-idyour-roleyour-s3-bucket 是您作为 CREATE MODEL 命令的一部分指定的角色。

    (可选)如果您在使用 Amazon Redshift ML 时指定了一个 Amazon KMS 键,请使用示例策略的 Amazon KMS 键部分。your-kms-key 值是作为 CREATE MODEL 命令一部分使用的键。

  4. (可选)创建 Amazon S3 存储桶和 Amazon Redshift 用于存储发送到 Amazon SageMaker 的训练数据并从 Amazon SageMaker 接收训练模型的 Amazon KMS 键。

  5. (可选)创建 IAM 角色和 Amazon S3 存储桶的不同组合,以控制对不同用户组的访问。

  6. (可选)当您在 Amazon Redshift 集群上启用 Virtual Private Cloud (VPC) 路由时,请为您的 Amazon Redshift 集群所在的 VPC 创建 Amazon S3 端点和 SageMaker 端点。这使得流量可以在 CREATE MODEL 期间通过您的 VPC 在服务之间运行。有关 VPC 路由的更多信息,请参阅 Amazon Redshift 中的增强型 VPC 路由

    如果您为超参数优化任务指定一个私有 VPC,请添加以下权限:

    { "Effect": "Allow", "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeNetworkInterfaces", "ec2:DescribeVpcs", "ec2:DescribeDhcpOptions", "ec2:DescribeSubnets", "ec2:DescribeSecurityGroups" ] }

有关如何使用 CREATE MODEL 语句开始为不同的使用案例创建模型的信息,请参阅CREATE MODEL

管理权限和所有权

与 Amazon Redshift 管理其他数据库对象(如表、视图或函数)的方式类似的是,Amazon Redshift 绑定模型创建并用于访问控制机制。创建运行预测函数的模型具有单独的权限。

以下示例使用两个用户组: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 权限授予 marketing_analyst_grp GROUP 使用该模型的权限。

GRANT EXECUTE ON MODEL demo_ml.customer_churn_auto_model TO GROUP marketing_analyst_grp;

将 REVOKE 语句与 CREATE MODEL 和 EXECUTE 一起使用,取消用户或组的这些权限。有关权限控制命令的更多信息,请参阅GRANTREVOKE