环境账户连接 - AWS Proton

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

环境账户连接

概述

了解如何在一个账户中创建和管理 AWS Proton 环境,并在另一个账户中预置其基础设施资源。这有助于在大规模操作中提高可见性和效率。环境账户连接仅支持使用 AWS CloudFormation 基础设施即代码的标准预置。

注意

本主题中的信息与配置了 AWS 托管式预置 的环境相关。对于配置了自托管式预置 的环境,AWS Proton 不会直接预置您的基础设施。相反,它将拉取请求 (PR) 发送到您的存储库以进行预置。您负责确保您的自动化代码担任正确的身份和角色。

有关预置方法的更多信息,请参阅AWS Proton 如何预置基础设施

术语

该图描述位于单个 AWS 区域的单个账户(管理账户)中的 AWS Proton 资源。它还说明了该账户中的 AWS Proton 环境如何使用环境账户连接部署到同一区域中的其他账户(环境账户)。

通过使用 AWS Proton 环境账户连接,您可以从一个账户中创建 AWS Proton 环境,并在另一个账户中预置其基础设施。

管理账户

您作为管理员可以在该单一账户中创建一个 AWS Proton 环境,该环境在另一个环境账户 中预置基础设施资源。

环境账户

在另一个账户中创建 AWS Proton 环境时,将在环境账户中预置环境基础设施。

环境账户连接

管理账户环境账户 之间的安全双向连接。它维护授权和权限,在以下几节中进一步中介绍了该内容。

在特定区域的环境账户中创建一个环境账户连接时,仅同一区域中的管理账户可以看到和使用该环境账户连接。这意味着,在管理账户中创建的 AWS Proton 环境和在环境账户中预置的环境基础设施必须位于同一区域中。

环境账户连接注意事项

  • 对于要在环境账户中预置的每个环境,您需要建立一个环境账户连接。

  • 有关环境账户连接配额的信息,请参阅AWS Proton 配额

标记

在环境账户中,使用控制台或 AWS CLI 查看和管理环境账户连接客户托管标签。不会 为环境账户连接生成 AWS 托管标签。有关更多信息,请参阅AWS Proton 资源和标记

在一个账户中创建环境并在另一个账户中预置其基础设施

要从单个管理账户中创建和预置环境,请为您计划创建的环境设置一个环境账户。

在环境账户中启动并创建连接。

在环境账户中,创建一个 AWS Proton 服务角色,其范围缩小到仅预置环境基础设施资源所需的权限。有关更多信息,请参阅AWS Proton 使用进行置备的服务角色 AWS CloudFormation

然后,创建一个环境账户连接请求并将其发送到您的管理账户。如果接受了该请求,AWS Proton 可以使用关联的 IAM 角色,该角色允许在关联的环境账户中预置环境资源。

在管理账户中,接受或拒绝环境账户连接。

在管理账户中,接受或拒绝环境账户连接请求。您无法 从管理账户中删除环境账户连接。

如果您接受该请求,AWS Proton 可以使用关联的 IAM 角色,该角色允许在关联的环境账户中预置资源。

环境基础设施资源是在关联的环境账户中预置的。您只能使用 AWS Proton API 从您的管理账户中访问和管理您的环境及其基础设施资源。有关更多信息,请参阅 在一个账户中创建环境并在另一个账户中预置更新环境

在拒绝请求后,您将无法 接受或使用拒绝的环境账户连接。

注意

无法 拒绝已连接到环境的环境账户连接。要拒绝环境账户连接,您必须先删除关联的环境。

在环境账户中,访问预置的基础设施资源。

在环境账户中,您可以查看和访问预置的基础设施资源。例如,如果需要,您可以使用 CloudFormation API 操作监控和清理堆栈。您无法使用 AWS Proton API 操作访问或管理用于预置基础设施资源的 AWS Proton 环境。

在环境账户中,您可以删除在环境账户中创建的环境账户连接。您无法 接受或拒绝这些连接。如果删除 AWS Proton 环境正在使用的环境账户连接,AWS Proton 将无法管理环境基础设施资源,直到环境账户和指定环境接受了新的环境连接。您负责清理没有环境连接的预置资源。

使用控制台或 CLI 管理环境账户连接

您可以使用控制台或 CLI 创建和管理环境账户连接。

AWS Management Console
使用控制台创建一个环境账户连接,并向管理账户发送请求,如以下步骤中所示。
  1. 确定您计划在管理账户中创建的环境名称,或选择需要环境账户连接的现有环境名称。

  2. 在环境账户中,在 AWS Proton 控制台上的导航窗格中选择环境账户连接

  3. 环境账户连接页面中,选择请求连接

    注意

    验证环境账户连接页面标题中列出的账户 ID。确保它与您希望在其中预置指定环境的环境账户的账户 ID 匹配。

  4. 请求连接页面中:

    1. 连接到管理账户部分中,输入您在步骤 1 中输入的管理账户 ID环境名称

    2. 环境角色部分中,选择新服务角色,AWS Proton 自动为您创建一个新角色。或者,选择现有的服务角色和您以前创建的服务角色的名称。

      注意

      AWS Proton 自动为您创建的角色具有广泛的权限。我们建议您将角色范围缩小到预置环境基础设施资源所需的权限。有关更多信息,请参阅AWS Proton 使用进行置备的服务角色 AWS CloudFormation

    3. (可选)在标签部分中,选择添加新标签,为您的环境账户连接创建一个客户托管标签。

    4. 选择请求连接

  5. 您的请求在发送到管理账户的环境连接表中显示为“待处理”,并且一个模态框让您知道如何从管理账户中接受该请求。

接受或拒绝环境账户连接请求。
  1. 在管理账户中,在 AWS Proton 控制台上的导航窗格中选择环境账户连接

  2. 环境账户连接页面上的环境账户连接请求表中,选择要接受或拒绝的环境连接请求。

    注意

    验证环境账户连接页面标题中列出的账户 ID。确保它与要拒绝的环境账户连接的关联管理账户的账户 ID 匹配。在拒绝该环境账户连接后,您将无法 接受或使用拒绝的环境账户连接。

  3. 选择拒绝接受

    • 如果您选择拒绝,状态将从待处理变为已拒绝

    • 如果您选择接受,状态将从待处理变为已连接

删除环境账户连接。
  1. 在环境账户中,在 AWS Proton 控制台上的导航窗格中选择环境账户连接

    注意

    验证环境账户连接页面标题中列出的账户 ID。确保它与要拒绝的环境账户连接的关联管理账户的账户 ID 匹配。在删除该环境账户连接后,AWS Proton 无法 管理环境账户中的环境基础设施资源。只有在管理账户接受环境账户和指定环境的新环境账户连接后,它才能管理该资源。

  2. 环境账户连接页面上的已发送连接至管理账户的请求部分中,选择删除

  3. 一个模态框提示您确认是否要删除。选择 Delete (删除)

AWS CLI

确定您计划在管理账户中创建的环境名称,或选择需要环境账户连接的现有环境名称。

在环境账户中创建环境账户连接。

运行以下命令:

$ aws proton create-environment-account-connection \ --environment-name "simple-env-connected" \ --role-arn "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" \ --management-account-id "111111111111"

响应:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "PENDING" } }

在管理账户中接受或拒绝环境账户连接,如以下命令和响应中所示。

注意

在拒绝该环境账户连接后,您将无法接受或使用拒绝的环境账户连接。

如果您指定拒绝,状态将从待处理变为已拒绝

如果您指定接受,状态将从待处理变为已连接

运行以下命令以接受环境账户连接:

$ aws proton accept-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

响应:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

运行以下命令以拒绝环境账户连接:

$ aws proton reject-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

响应:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:us-east-1:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "status": "REJECTED", "environmentAccountId": "222222222222", "environmentName": "simple-env-reject", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role" } }

查看环境账户的连接。您可以使用 getlist 获取或列出环境账户连接。

运行以下 get 命令:

$ aws proton get-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

响应:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:region-id:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:15:33.486000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }

删除环境账户中的环境账户连接。

注意

如果您删除该环境账户连接,AWS Proton 将无法管理环境账户中的环境基础设施资源,直到环境账户和指定环境接受了新的环境连接。您负责清理没有环境连接的预置资源。

运行以下命令:

$ aws proton delete-environment-account-connection \ --id "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111"

响应:

{ "environmentAccountConnection": { "arn": "arn:aws:proton:us-east-1:222222222222:environment-account-connection/a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "environmentAccountId": "222222222222", "environmentName": "simple-env-connected", "id": "a1b2c3d4-5678-90ab-cdef-EXAMPLE11111", "lastModifiedAt": "2021-04-28T23:13:50.847000+00:00", "managementAccountId": "111111111111", "requestedAt": "2021-04-28T23:13:50.847000+00:00", "roleArn": "arn:aws:iam::222222222222:role/service-role/env-account-proton-service-role", "status": "CONNECTED" } }