Skip to main content

AWS 中的 Cloud Execution for Desktop

按照本指南部署用于 AWS 私有数据处理的 Cloud Execution for Desktop 模块。

先决条件

在部署 Cloud Execution for Desktop 模块之前,您必须在 为私有数据设置 AWS 账户和 VPC 页面上完成以下步骤...

  1. 已配置专用于 Alteryx One Platform 的 VPC,具体请参考创建 VPC部分。

  2. 服务账户及附加到该服务账户的基础 IAM 角色,具体请参考配置 IAM 部分。

  3. 已成功触发私有数据处理配置,具体操作请参考触发私有数据处理预配部分。

账户设置

步骤 1:配置 IAM

步骤 1a:创建 Cloud Execution IAM 策略

注意

AAC_CEFD_SA_Policy 是一个示例策略名称。您可以为策略选择任何名称,但该名称必须AAC_CEFD 开头。

您需要创建自定义 IAM 策略。将其命名为 AAC_CEFD_SA_Policy 并使用以下策略文档。我们建议使用 JSON 选项卡而不是可视化编辑器。Alteryx One 需要一些 * 权限才能运行。在创建策略时,预计会出现一些安全警告。请注意,该 IAM 策略文档支持角色创建,并包含 Lambda 函数承担角色的内嵌策略。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/*",
            "Condition": {
                "StringEqualsIfExists": {
                    "iam:PassedToService": [
                        "ec2.amazonaws.com",
                        "ec2.amazonaws.com.cn"
                    ]
                }
            }
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "iam:CreateServiceLinkedRole",
                "kms:CreateGrant",
                "kms:Decrypt",
                "kms:DescribeKey",
                "kms:Encrypt",
                "kms:GetKeyPolicy",
                "kms:GetKeyRotationStatus",
                "kms:ListGrants",
                "kms:ListResourceTags",
                "kms:ListRetirableGrants",
                "kms:PutKeyPolicy",
                "kms:RetireGrant",
                "kms:RevokeGrant",
                "kms:ScheduleKeyDeletion",
                "kms:TagResource",
                "kms:UntagResource"
            ],
            "Resource": [
                "arn:aws:kms:*:*:key/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor2",
            "Effect": "Allow",
            "Action": [
                "iam:GetPolicy",
                "iam:GetPolicyVersion",
                "iam:GetRole",
                "iam:GetRolePolicy",
                "iam:PutRolePolicy",
                "iam:DeleteRolePolicy",
                "iam:DetachRolePolicy",
                "iam:AttachRolePolicy",
                "iam:GetUser",
                "iam:GetUserPolicy",
                "iam:ListInstanceProfilesForRole",
                "iam:ListPolicyTags",
                "iam:ListPolicyVersions",
                "iam:ListRolePolicies",
                "iam:PassRole",               
                "iam:TagPolicy",
                "iam:TagRole",                
                "iam:UntagPolicy",
                "iam:UntagRole",              
                "iam:UpdateAssumeRolePolicy",
                "iam:CreatePolicy",
                "iam:CreatePolicyVersion",
                "iam:CreateRole",
                "iam:DeletePolicy",
                "iam:DeletePolicyVersion",
                "iam:DeleteRole",
                "iam:PassRole",
                "iam:PutRolePolicy",
                "iam:UpdateRole"
            ],
            "Resource": [
                "arn:aws:iam::*:policy/*",
                "arn:aws:iam::*:oidc-provider/*",
                "arn:aws:iam::*:user/*",
                "arn:aws:iam::*:role/*"
            ]
        },
        {
            "Sid": "VisualEditor3",
            "Effect": "Allow",
            "Action": [
                "autoscaling:*",
                "ec2:*",
                "elasticloadbalancing:*",
                "iam:GetAccountName",
                "iam:ListAccountAliases",
                "iam:ListRoles",
                "iam:CreateInstanceProfile",
                "iam:DeleteInstanceProfile",
                "iam:GetInstanceProfile",
                "iam:TagInstanceProfile",
                "iam:UntagInstanceProfile", 
                "iam:RemoveRoleFromInstanceProfile", 
                "iam:AddRoleToInstanceProfile", 
                "logs:CreateLogGroup",
                "logs:DeleteLogGroup",
                "logs:DescribeLogGroups",
                "logs:ListTagsLogGroup",
                "logs:PutRetentionPolicy",
                "logs:TagResource",
                "logs:UntagResource",
                "logs:TagLogGroup",
                "logs:UntagLogGroup",
                "networkmanager:Describe*",
                "networkmanager:Get*",
                "networkmanager:List*",
                "sts:GetCallerIdentity",
                "logs:CreateLogStream",
                "logs:DeleteLogStream",
                "logs:PutLogEvents",
                "lambda:GetFunction",
                "lambda:GetFunctionCodeSigningConfig",
                "lambda:GetPolicy",
                "lambda:CreateFunction",
                "lambda:DeleteFunction",
                "lambda:ListVersionsByFunction",
                "lambda:AddPermission",
                "lambda:RemovePermission",
                "lambda:UntagResource", 
                "lambda:UpdateFunctionConfiguration",
                "lambda:UpdateFunctionCode",
                "lambda:tagResource",
                "events:DescribeRule",
                "events:DeleteRule",
                "events:PutRule",
                "events:PutTargets",
                "events:RemoveTargets",
                "events:ListTagsForResource",
                "events:ListTargetsByRule"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor4",
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": "arn:aws:secretsmanager:*:*:secret:*"
        }
    ]
}

步骤 1b:为 IAM 策略添加标签

为步骤 1a 中创建的自定义 IAM 策略添加标签。

标记名称

AACResource

aac_sa_custom_policy

步骤1c:附加 IAM 策略

将 IAM 策略 AAC_CEFD_SA_Policy 附加到在 为私有数据设置 AWS 账户和 VPC 页面上创建的 aac_automation_sa 服务账户。

步骤 2:配置子网

注意

如果您购买了 Designer Cloud 和 EMR,请按照 Designer Cloud and EMR Serverless in AWS 中所述配置子网。EMR 和 CEfD 资源共享 option 子网。

在私有数据处理环境中,Cloud Execution for Desktop 需要 1 个子网。该子网组包含 3 个单独的子网,每个子网位于不同的可用性区域。

  • public(必填):此组不运行任何服务,但用于 VPC 出站流量。

  • private(必填):此组运行 PDP 专用的服务。

  • option 组:如果您在数据处理环境中启用 Cloud Execution for Desktop,请使用此组。如果您启用此选项,一个 AMI Swarm 将在该子网中运行,以处理在云中运行的 Designer Desktop 处理作业。

步骤 2a:在 VPC 中创建子网

aac_vpc VPC 中配置子网。

按照以下示例创建子网并添加标签。您可以调整 CIDR 和子网值以适应您的网络架构。

大地址空间旨在容纳完全扩展的集群。如果需要,您可以选择较小的地址空间,但在处理负载较重的情况下,可能会遇到扩展问题。

重要

您必须使用标记名称标记值标记子网,如表中所述。

CIDR

子网名称

子网

AZ

标记名称

标签值

10.10.0.0/21

选项

10.10.4.0/24

AZa

AACSubnet

选项

选项

10.10.5.0/24

AZb

AACSubnet

选项

选项

10.10.6.0/24

AZc

AACSubnet

选项

步骤 2b:子网路由表

为子网创建路由表。

注意

此路由表是一个示例。

子网名称

路由目标

目标

备注

public

/18 CIDR 地址段

/21 CIDR 地址段

0.0.0.0/0

local

local

<gateway id>

为所有 3 个 AZ 子网路由表配置相同的路由。

private

/18 CIDR 地址段

/21 CIDR 地址段

<s3 prefix id>

0.0.0.0/0

local

local

<vpce endpoint id>

<gateway id>

为所有 3 个 AZ 子网路由表配置相同的路由。

0.0.0.0/0 应传出到公用网络。

选项

/21 CIDR 地址段

<s3 prefix id>

0.0.0.0/0

本地

<vpce endpoint id>

<gateway id>

为所有 3 个 AZ 子网路由表配置相同的路由。

基本上,0.0.0.0/0 应传出到公用网络。

注意

您的 <gateway id> 可为每个 AZ 创建的区域性 NAT 网关或中转网关,具体取决于网络架构。若使用 NAT 网关,请为每个 AZ 的公有子网分别创建一个 NAT 网关。

私有数据处理

小心

在设置私有数据处理后更改或移除任何 Alteryx One 配置的公有云资源可能会导致不一致。这些不一致可能会导致作业执行期间或取消私有数据处理设置时出错。

步骤 1:触发 CEfD 部署

数据处理配置从 Alteryx One 内部的管理员控制台触发。您需要工作区内的“工作区管理员”权限才能查看它。

  1. Alteryx One 登录页面中,选择个人资料菜单,然后选择工作区管理员

  2. 从管理控制台中,选择私有数据处理,然后选择处理

  3. 选中 Cloud Execution for Desktop 复选框,然后选择更新

选择更新会触发 AWS 账户中集群和资源的部署。这将运行一系列验证检查,以确认 AWS 账户的配置是否正确。

注意

配置过程大约需要 35–40 分钟才能完成。

预配完成后,您可以通过 AWS 控制台查看已创建的资源(例如 EC2 实例和节点组)。切勿自行修改它们,这一点非常重要。手动更改可能会导致私有数据处理环境的功能出现问题。