View a markdown version of this page

配置文件传输代理 - AWS Mainframe Modernization

AWS 大型机现代化自我管理体验不再向新客户开放。要获得与 AWS 大型机现代化自我管理体验相似的功能,请探索供应商直销产品和来自的功能。 AWS Transform现有客户可以继续正常使用该服务。有关更多信息,请参阅AWS 大型机现代化可用性变更。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

AWS 大型机现代化服务(托管运行时环境体验)不再向新客户开放。要了解与 AWS 大型机现代化服务(托管运行时环境体验)类似的功能,请浏览 AWS 大型机现代化服务(Self-Managed体验)。现有客户可以继续正常使用该服务。有关更多信息,请参阅AWS 大型机现代化可用性变更。

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

配置文件传输代理

安装文件传输代理后,请按照以下步骤配置该代理。如果您需要安装新的代理,请按照安装文件传输代理页面上的说明进行操作。

步骤 1:配置权限和已启动任务控制(STC)

  1. 按照说明,更新并提交其中一个 SYS2.AWS.M2.SAMPLIB(SEC#RACF)(用于设置 RACF 权限)或 SYS2.AWS.M2.SAMPLIB(SEC#TSS)(用于设置 TSS 权限)。这些成员由前面的 CPY#PDS 步骤创建。

    注意

    SYS2.AWS.M2应替换为安装期间选择的高级限定符 (HLQ)。

  2. 如果默认文件传输代理目录路径(/usr/lpp/aws/m2-agent)已更改,请更新 SYS2.AWS.M2.SAMPLIB(M2AGENT) STC JCL 中的 PWD 导出。

  3. 根据您的网站标准更新 PROC:

    1. 根据您的安装要求更新 PROC 卡。

    2. 使用更新 STEPLIB。M2 LOADLIB PDSE ALIAS

    3. 编辑 PWD 以指向代理安装路径(仅包含此路径)。

    4. JAVA_HOME如有必要,请更新。

  4. 更新 SYS2.AWS.M2.SAMPLIB(M2AGENT) JCL 并将其复制到PROCLIB串联 PROCLIBs 中的SYS1.PROCLIB或其中一个。

  5. 使用以下命令将 SYS2.AWS.M2.LOADLIB 添加到 APF 列表:

    SETPROG APF ADD DSNAME(SYS2.AWS.M2.LOADLIB) SMS
  6. 将代理的群组和所有者设置为代理 user/group (M2USER/M2GROUP)。在 OMVS 中使用以下命令:

    chown -R M2USER:M2GROUP $AGENT_DIR/current-version
    注意

    使用您在安全定义作业中使用的名称编辑 M2USER 和 M2GROUP。

步骤 2:创建 Amazon S3 存储桶

AWS Mainframe Modernization 文件传输功能需要一个中间 Amazon S3 存储桶作为工作区。建议专门为此创建一个存储桶。

(可选)为已传输的数据集创建一个新的目标 Amazon S3 存储桶。或者,您也可以使用现有的 Amazon S3 存储桶。有关创建 Amazon S3 存储桶的更多信息,请参阅创建存储桶。

步骤 3:创建用于加密的 AWS KMS 客户托管密钥

要在中创建客户管理的密钥 AWS KMS
  1. 打开 AWS KMS 控制台,网址为https://console.aws.amazon.com/kms。

  2. 在左侧导航窗格中,选择客户托管密钥。

  3. 选择创建密钥。

  4. 在配置密钥下,选择密钥类型为对称,将密钥用法选择为加密和解密。使用其他默认配置。

  5. 选择下一步。

  6. 在添加标签中,为密钥添加别名和描述。

  7. 选择下一步。

  8. 在定义密钥管理权限下,至少选择一个管理此密钥的 IAM 用户和角色。

  9. 选择下一步。

  10. 或者,在 “定义密钥管理权限” 下,选择至少一个可以使用此密钥的 IAM 用户和角色。

  11. 选择下一步。

  12. 在编辑密钥策略部分中,选择编辑,然后向密钥策略添加以下语法。这样, AWS 大型机现代化服务就可以读取和使用这些密钥进行加密/解密。

    重要

    请将语句添加到现有语句中。不要替换策略中的已有内容。

    { "Sid" : "Enable AWS M2 File Transfer Permissions", "Effect" : "Allow", "Principal" : { "Service" : "m2.amazonaws.com" }, "Action" : [ "kms:Encrypt", "kms:Decrypt" ], "Resource" : "*" },
  13. 选择下一步。

  14. 在 “查看” 页面上,检查所有详细信息,然后选择 “完成”。

打开新创建的 KMS 密钥,复制并保存客户托管密钥的 ARN。该 ARN 稍后将在策略中使用。

步骤 4:为大型机凭证创建 AWS Secrets Manager 密钥

访问要传输的数据集需要大型机凭据,并且这些凭据必须作为 AWS Secrets Manager 机密存储。

创建密 AWS Secrets Manager 钥
  1. 从 https://console.aws.amazon.com/secretsmanager 打开 Secrets Manager 控制台。

  2. 选择存储新密钥。

  3. 在选择密钥类型下,选择其他类型的密钥。

  4. 使用有权访问数据userId集的大型机用户 ID 的密钥值。为密码字段使用密钥值 password。

  5. 对于加密密钥,请选择之前创建的 AWS 客户托管密钥。

  6. 选择下一步。

  7. 在配置密钥页面上,输入名称和描述。

  8. 在同一页面上,编辑资源权限并使用以下资源策略,以便 AWS 大型机现代化服务可以对其进行访问。

    JSON
    { "Version":"2012-10-17", "Statement" : [ { "Effect" : "Allow", "Principal" : { "Service" : "m2.amazonaws.com" }, "Action" : [ "secretsmanager:GetSecretValue", "secretsmanager:DescribeSecret" ], "Resource" : "*" } ] }
  9. 选择 “保存” 以保存更新的权限。

  10. 选择下一步。

  11. 跳过 “配置轮换” 页面,然后选择 “下一步”。

  12. 在审核页面上,检查所有配置并选择存储以保存密钥。

重要

userId 和 password 密钥区分大小写,必须按所示方式输入。

步骤 5:创建 IAM 策略

创建包含代理所需权限的新策略
  1. 使用 https://console.aws.amazon.com/iam 打开 IAM 控制台。

  2. 在 “访问管理” 下选择 “策略”。

  3. 选择创建策略。

  4. 在 “指定权限” 页面的 “策略编辑器” 下,从可视化编辑器切换到 JSON 编辑器,并将内容替换为以下模板:

  5. 用您的账户替换请求队列 ARN 和响应队列 ARN 中的 111122223333。

    注意

    这两个通配符 ARN 与数据传输端点初始化期间创建的两个 Amazon SQS 队列相匹配。创建文件传输端点后,可以选择将这两个 ARN 替换为 Amazon SQS 中的实际值。

  6. 将 file-transfer-endpoint-intermediate-bucket-arn 替换为之前创建的传输存储桶的 ARN。在末尾保留“/*”通配符。

  7. kms-key-arn替换为先前创建的 AWS KMS 密钥的 ARN。

  8. 选择下一步。

  9. 在 “查看并创建” 页面上,添加策略名称和描述。

  10. 选择创建策略。

步骤 6:创建具有长期访问凭证的 IAM 用户

创建允许大型机代理连接到您的 AWS 账户的 IAM 用户。代理将与该用户连接,然后承担您定义的角色,该角色具有使用 Amazon SQS 响应和请求队列以及将数据集保存到 Amazon S3 存储桶的权限。

创建此 IAM 用户
  1. 导航到 https://console.aws.amazon.com/iam 的 IAM 控制台。

  2. 在 “访问管理” 下选择 “用户”。

  3. 选择创建用户。

  4. 在用户详细信息下添加一个有意义的用户名。例如 Configure-ft-agent。

  5. 选择下一步。

  6. 在权限选项中,选择直接附加策略选项,但不要附加任何权限策略。这些权限将由将要附加的角色管理。

  7. 选择下一步。

  8. 查看详细信息,然后选择创建用户。

  9. 创建用户后,选择该用户并打开安全凭证选项卡。

  10. 在访问密钥下,选择创建访问密钥。

  11. 然后,在提示输入用例时选择 “其他”。

  12. 选择下一步。

  13. 或者,您可以设置描述标签,例如,Access key for configuring file transfer agent。

  14. 选择创建访问密钥。

  15. 复制并安全保存生成的访问密钥和私有访问密钥。稍后将会使用这两个密钥。

有关创建 IAM 访问密钥的更多信息,请参阅管理 IAM 用户的访问密钥。

重要

选择完成之前,保存在访问密钥创建向导的最后一页上显示的访问密钥和秘密访问密钥。这些密钥用于配置大型机代理,以后无法检索。

注意

保存用于与 IAM 角色建立信任关系的 IAM 用户 ARN。

步骤 7:创建代理将承担的 IAM 角色

为代理创建新的 IAM 角色
  1. 从 https://console.aws.amazon.com/iam 打开 IAM 控制台,并选择角色。

  2. 选择创建角色。

  3. 在选择可信实体页面中的可信实体类型下,选择自定义信任策略。

  4. 将自定义信任策略替换为以下内容,并将 <iam-user-arn> 替换为之前创建的用户的 ARN。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "FileTransferAgent", "Effect": "Allow", "Principal": { "AWS": "<IAM-User-arn>" }, "Action": "sts:AssumeRole" } ] }
  5. 选择下一步。

  6. 在添加权限中,筛选出您之前创建的策略名称,然后选择该策略。

  7. 选择下一步。

  8. 命名该角色,然后选择创建角色。

注意

保存该角色名称,稍后您将使用该名称来配置大型机代理。

步骤 8:配置代理

配置文件传输代理
  1. 导航到 $AGENT_DIR/current-version/config。

  2. 使用以下命令编辑代理的配置文件 appication.properties,以添加环境配置:

    oedit $AGENT_DIR/current-version/config/application.properties

    例如:

    agent.environments[0].account-id=<AWS_ACCOUNT_ID> agent.environments[0].agent-role-name=<AWS_IAM_ROLE_NAME> agent.environments[0].access-key-id=<AWS_IAM_ROLE_ACCESS_KEY> agent.environments[0].secret-access-id=<AWS_IAM_ROLE_SECRET_KEY> agent.environments[0].bucket-name=<AWS_S3_BUCKET_NAME> agent.environments[0].environment-name=<AWS_REGION> agent.environments[0].region=<AWS_REGION> zos.complex-name=<File_Transfer_Endpoint_Name>

    其中:

    重要

    可以有几个这样的部分,只要括号中的索引 ([0]) 为每个部分递增。

必须重新启动代理才能使更改生效。

要求

  1. 添加或删除参数时,必须停止并启动代理。在 CLI 中使用以下命令启动文件传输代理:

    /S M2AGENT

    要停止 M2 代理,请在 CLI 中使用以下命令:

    /P M2AGENT
  2. 您可以通过定义环境条目将文件传输代理配置为将数据传输到多个区域和账户。 AWS

    注意

    将这些值替换为您之前创建并配置的参数值。

    #Region 1 agent.environments[0].account-id=AWS_ACCOUNT_ID agent.environments[0].agent-role-name=AWS_IAM_ROLE_NAME agent.environments[0].access-key-id=AWS_IAM_ROLE_ACCESS_KEY agent.environments[0].secret-access-id=AWS_IAM_ROLE_SECRET_KEY agent.environments[0].bucket-name=AWS_S3_BUCKET_NAME agent.environments[0].environment-name=AWS_REGION agent.environments[0].region=AWS_REGION #Region 2 agent.environments[1].account-id=AWS_ACCOUNT_ID agent.environments[1].agent-role-name=AWS_IAM_ROLE_NAME agent.environments[1].access-key-id=AWS_IAM_ROLE_ACCESS_KEY agent.environments[1].secret-access-id=AWS_IAM_ROLE_SECRET_KEY agent.environments[1].bucket-name=AWS_S3_BUCKET_NAME agent.environments[1].environment-name=AWS_REGION agent.environments[1].region=AWS_REGION