在不使用快速入门 CloudFormation 模板的情况下设置 Neptune ML - Amazon Neptune

在不使用快速入门 CloudFormation 模板的情况下设置 Neptune ML

本指南提供了有关在不使用 AWS CloudFormation 快速入门模板的情况下设置 Amazon Neptune ML 的分步说明。本指南假设您已经有一个正在运行的 Neptune 数据库集群,其中涵盖了启用 Neptune ML 所必需的设置,包括安装 Neptune-Export 服务、创建自定义 IAM 角色以及配置数据库集群。指南中还说明了如何在 Neptune VPC 中创建两个 SageMaker AI 端点,以便允许 Neptune 引擎访问必要的 SageMaker AI 管理 API。按照这些说明进行操作,您无需依赖 CloudFormation 模板即可在现有的 Neptune 基础设施上设置 Neptune ML。

从正常运行的 Neptune 数据库集群开始

如果您不使用 CloudFormation 快速入门模板来设置 Neptune ML,则需要使用现有的 Neptune 数据库集群。如果您愿意,您可以使用已经拥有的一个集群,或者克隆一个您已经在使用的集群,也可以创建一个新集群(请参阅创建 Neptune 集群)。

安装 Neptune-Export 服务

如果您还没有这样做,请安装 Neptune-Export 服务,如使用 Neptune-Export 服务导出 Neptune 数据中所述。

使用以下设置向安装过程创建的 NeptuneExportSecurityGroup 安全组添加入站规则:

  • 类型Custom TCP

  • 协议TCP

  • 端口范围80 - 443

  • 来源(Neptune 数据库集群安全组 ID

创建自定义 NeptuneLoadFromS3 IAM 角色

如果您尚未这样做,请创建自定义 NeptuneLoadFromS3 IAM 角色,如创建 IAM 角色以访问 Amazon S3中所述。

创建自定义 NeptuneSageMakerIAMRole 角色

使用 IAM 控制台通过以下策略创建自定义 NeptuneSageMakerIAMRole

JSON
{ "Version":"2012-10-17", "Statement": [ { "Action": [ "ec2:CreateNetworkInterface", "ec2:CreateNetworkInterfacePermission", "ec2:CreateVpcEndpoint", "ec2:DeleteNetworkInterface", "ec2:DeleteNetworkInterfacePermission", "ec2:DescribeDhcpOptions", "ec2:DescribeNetworkInterfaces", "ec2:DescribeRouteTables", "ec2:DescribeSecurityGroups", "ec2:DescribeSubnets", "ec2:DescribeVpcEndpoints", "ec2:DescribeVpcs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ecr:GetAuthorizationToken", "ecr:GetDownloadUrlForLayer", "ecr:BatchGetImage", "ecr:BatchCheckLayerAvailability" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": [ "arn:aws:iam::*:role/*" ], "Condition": { "StringEquals": { "iam:PassedToService": [ "sagemaker.amazonaws.com" ] } }, "Effect": "Allow" }, { "Action": [ "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDataKey*" ], "Resource": "arn:aws:kms:*:*:key/*", "Effect": "Allow" }, { "Action": [ "logs:CreateLogGroup", "logs:CreateLogStream", "logs:PutLogEvents", "logs:DescribeLogGroups", "logs:DescribeLogStreams", "logs:GetLogEvents" ], "Resource": [ "arn:aws:logs:*:*:log-group:/aws/sagemaker/*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:AddTags", "sagemaker:CreateEndpoint", "sagemaker:CreateEndpointConfig", "sagemaker:CreateHyperParameterTuningJob", "sagemaker:CreateModel", "sagemaker:CreateProcessingJob", "sagemaker:CreateTrainingJob", "sagemaker:CreateTransformJob", "sagemaker:DeleteEndpoint", "sagemaker:DeleteEndpointConfig", "sagemaker:DeleteModel", "sagemaker:DescribeEndpoint", "sagemaker:DescribeEndpointConfig", "sagemaker:DescribeHyperParameterTuningJob", "sagemaker:DescribeModel", "sagemaker:DescribeProcessingJob", "sagemaker:DescribeTrainingJob", "sagemaker:DescribeTransformJob", "sagemaker:InvokeEndpoint", "sagemaker:ListTags", "sagemaker:ListTrainingJobsForHyperParameterTuningJob", "sagemaker:StopHyperParameterTuningJob", "sagemaker:StopProcessingJob", "sagemaker:StopTrainingJob", "sagemaker:StopTransformJob", "sagemaker:UpdateEndpoint", "sagemaker:UpdateEndpointWeightsAndCapacities" ], "Resource": [ "arn:aws:sagemaker:*:*:*" ], "Effect": "Allow" }, { "Action": [ "sagemaker:ListEndpointConfigs", "sagemaker:ListEndpoints", "sagemaker:ListHyperParameterTuningJobs", "sagemaker:ListModels", "sagemaker:ListProcessingJobs", "sagemaker:ListTrainingJobs", "sagemaker:ListTransformJobs" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "s3:GetObject", "s3:PutObject", "s3:DeleteObject", "s3:AbortMultipartUpload", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::*" ], "Effect": "Allow" } ] }

创建此角色时,请编辑信任关系,使其内容如下所示:

JSON
{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "ec2.amazonaws.com", "rds.amazonaws.com", "sagemaker.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

最后,复制分配给这个新 NeptuneSageMakerIAMRole 角色的 ARN。

重要
  • 请确保 NeptuneSageMakerIAMRole 中的 Amazon S3 权限与上述权限一致。

  • 通用 ARN arn:aws:s3:::* 用于上述策略中的 Amazon S3 资源。如果由于某种原因无法使用通用 ARN,则必须将 arn:aws:s3:::graphlytics* 和 Neptune ML 命令将使用的任何其他客户 Amazon S3 资源的 ARN 添加到资源部分。

配置数据库集群以启用 Neptune ML

要为 Neptune ML 设置数据库集群
  1. Neptune 控制台中,导航到参数组,然后导航到与要使用的数据库集群关联的数据库集群参数组。将 neptune_ml_iam_role 参数设置为分配给您刚刚创建的 NeptuneSageMakerIAMRole 角色的 ARN。

  2. 导航到数据库,然后选择要用于 Neptune ML 的数据库集群。选择操作,然后选择管理 IAM 角色

  3. 管理 IAM 角色页面上,选择添加角色并添加 NeptuneSageMakerIAMRole。然后添加 NeptuneLoadFromS3 角色。

  4. 重启数据库集群的写入器实例。

在您的 Neptune VPC 中创建两个 SageMaker AI 端点

最后,要让 Neptune 引擎访问必要的 SageMaker AI 管理 API,您需要在 Neptune VPC 中创建两个 SageMaker AI 端点,如在 Neptune VPC 中为 SageMaker AI 创建两个端点中所述。