共享您的 AWS 资源 - AWS Resource Access Manager

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

共享您的 AWS 资源

要使用共享您拥有的资源 AWS RAM,请执行以下操作:

注意
  • 与拥有 AWS 账户 该资源的以外的委托人共享资源不会更改适用于创建该资源的账户内的资源权限或配额。

  • AWS RAM 是一项区域服务。您与之共享的委托人只能访问创建资源共享时 AWS 区域 所在的资源共享。

  • 有些资源在共享方面有特殊的注意事项和先决条件。有关更多信息,请参阅 可共享的资源 AWS

在 AWS Organizations中启用资源共享

当您的账户由管理时 AWS Organizations,您可以利用这一优势更轻松地共享资源。无论是否使用 Organizations,用户都可以与个人账户共享。但是,如果您的账户位于组织中,则您可以与个人账户、组织或 OU 中的所有账户共享,而不必枚举每个账户。

要在组织内共享资源,必须先使用 AWS RAM 控制台或 AWS Command Line Interface (AWS CLI) 启用与共享 AWS Organizations。当您在组织中共享资源时, AWS RAM 不会向委托人发送邀请。企业中的委托人获取对共享资源的访问权限,而无需交换邀请。

当您在组织内启用资源共享时, AWS RAM 会创建一个名AWSServiceRoleForResourceAccessManager为的服务相关角色。此角色只能由 AWS RAM 服务担任,并授予使用 AWS 托管策略检索有关其所属组织的信息的 AWS RAM 权限AWSResourceAccessManagerServiceRolePolicy

如果您不再需要与整个组织共享资源OUs,或者可以禁用资源共享。有关更多信息,请参阅 禁用与 AWS Organizations 的资源共享

最小权限

要运行以下步骤,您必须以拥有以下权限的组织管理账户中的主体身份登录:

  • ram:EnableSharingWithAwsOrganization

  • iam:CreateServiceLinkedRole

  • organizations:enableAWSServiceAccess

  • organizations:DescribeOrganization

要求
  • 只有在组织管理账户中以主体身份登录时,才能执行这些步骤。

  • 组织必须已启用所有功能。有关更多信息,请参阅《AWS Organizations 用户指南》中的启用企业中的所有功能

重要

您必须使用 AWS RAM 控制台或 enable-sharing-with-aws- organization AWS CLI 命令启用与 AWS Organizations 共享。这将确保创建与 AWSServiceRoleForResourceAccessManager 服务相关角色。如果您使用 AWS Organizations 控制台或 enable-aws-service-access AWS CLI 命令启用可信访问,则不会创建AWSServiceRoleForResourceAccessManager服务相关角色,也无法在组织内共享资源。 AWS Organizations

Console
要在组织内启用资源共享,请执行以下操作:
  1. 在 AWS RAM 控制台中打开 “设置” 页面。

  2. 选择 “启用与之共享” AWS Organizations,然后选择 “保存设置”

AWS CLI
要在组织内启用资源共享,请执行以下操作:

使用 enable-sharing-with-aws-组织命令。

此命令可以在任何区域中使用 AWS 区域,并且允许 AWS Organizations 在所有支持的区域中 AWS RAM 与共享。

$ aws ram enable-sharing-with-aws-organization { "returnValue": true }

创建资源共享

要共享您拥有的资源,请创建资源共享。过程概览:

  1. 添加您要共享的资源。

  2. 对于共享中包含的每种资源类型,请指定要用于该资源类型的托管权限

    • 您可以选择可用的 AWS 托管权限、现有客户托管权限或创建新的客户托管权限。

    • AWS 托管权限由创建 AWS ,以涵盖标准用例。

    • 客户托管权限允许您定制自己的托管权限,以满足您的安全和业务需求。

    注意

    如果选定的托管权限有多个版本,则 AWS RAM 会自动附加默认版本。您只能 附加指定为默认版本的版本。

  3. 指定要对资源拥有访问权限的主体。

注意事项
  • 如果您以后需要删除共享中包含的 AWS 资源,我们建议您先从包含该资源的任何资源共享中移除该资源,或者删除该资源共享。

  • 您可以在资源共享中包含的资源类型列在了可共享的资源 AWS中。

  • 仅当您拥有某个资源时,您才可以共享此资源。您无法共享与您共享的资源。

  • AWS RAM 是一项区域服务。当您与其他 AWS 账户中的主体共享资源时,这些主体必须从创建每个资源时所在的 AWS 区域 访问这些资源。对于支持的全局资源,您可以从 AWS 区域 该资源的服务控制台和工具支持的任何资源访问这些资源。您只能在指定的主区域美国东部(弗吉尼亚州北部)us-east-1 的 AWS RAM 控制台和工具中,查看此类资源共享及其全球资源。有关 AWS RAM 和全球资源的更多信息,请参阅共享区域资源(相较于全球资源)

  • 如果您共享的账户是组织中组织的一员, AWS Organizations 并且启用了在组织内共享,那么与您共享的组织中的任何委托人将自动获得访问资源共享的权限,而无需使用邀请。您在组织环境之外与之共享的账户中的主体会收到加入资源共享的邀请,并且只有在他们接受邀请后才能获得对所共享资源的访问权限。

  • 如果您与服务主体共享,则无法将任何其他主体与该资源共享关联。

  • 如果共享是在属于某个组织的账户或主体之间进行的,则组织成员资格的任何更改都会动态影响对资源共享的访问权限。

    • 如果您 AWS 账户 向组织或有权访问资源共享的 OU 中添加,则该新成员账户将自动获得对资源共享的访问权限。然后,您与之共享的账户的管理员可以授予该账户中的个人主体访问该共享中的资源的权限。

    • 如果您从组织或有权访问资源共享的 OU 中移除某个账户,则该账户中的所有主体将自动失去对通过该资源共享访问的资源的访问权限。

    • 如果您直接与成员账户或成员账户中的IAM角色或用户共享,然后将该账户从组织中移除,则该账户中的任何委托人将无法访问通过该资源共享访问的资源。

    重要

    当您与组织或 OU 共享,并且该范围包括拥有资源共享的账户时,共享账户中的所有主体都会自动获得对共享中资源的访问权限。授予的访问权限由与共享关联的托管权限定义。这是因为 AWS RAM 附加到共享中每个资源的基于资源的策略使用"Principal": "*"。有关更多信息,请参阅 使用的含义 "Principal": "*" 在基于资源的政策中

    其他所使用账户中的主体无法立即访问共享的资源。其他账户的管理员必须首先将基于身份的权限策略附加到相应的主体。这些策略必须授予ARNs对资源共享中各个资源的Allow访问权限。这些策略中的权限不能超过与资源共享关联的托管权限中指定的权限。

  • 您只能将您的账户所属的组织以及OUs该组织添加到您的资源共享中。您不能将组织外部的组织作为委托人添加到OUs资源共享中。但是,对于支持的服务,您可以将组织外部的个人 AWS 账户 IAM角色和用户添加为资源共享的委托人。

    注意

    并非所有资源类型都可以与IAM角色和用户共享。有关您可以与这些主体共享的资源的信息,请参阅可共享的资源 AWS

  • 对于以下资源类型,您有七天的时间接受邀请加入以下资源类型的共享。如果您在邀请到期之前未接受邀请,则系统会自动拒绝邀请。

    重要

    对于 在以下列表中的共享资源类型,您有 12 小时的时间 接受加入资源共享的邀请。12 小时后,邀请过期,资源共享中的最终用户主体将解除关联。最终用户无法再接受邀请。

    • Amazon Aurora - DB 集群

    • Amazon EC2 — 容量预留和专用主机

    • AWS License Manager — 许可证配置

    • AWS Outposts — 本地网关路由表、前哨基地和站点

    • Amazon Route 53 - 转发规则

    • Amazon VPC — 客户拥有IPv4的地址、前缀列表、子网、流量镜像目标、中转网关、中转网关组播域

Console
要创建资源共享,请执行以下操作:
  1. 打开AWS RAM 控制台

  2. 由于 AWS RAM 资源共享是特定的 AWS 区域,因此请 AWS 区域 从控制台右上角的下拉列表中选择相应的资源共享。要查看包含全球资源的资源共享,必须将设置 AWS 区域 为美国东部(弗吉尼亚北部)、(us-east-1)。有关共享全球资源的更多信息,请参阅共享区域资源(相较于全球资源)。如果要在资源共享中包含全球资源,则必须选择指定的主区域,即美国东部(弗吉尼亚州北部)us-east-1

  3. 如果您不熟悉 AWS RAM,请从主页上选择 “创建资源共享”。否则,请从由我共享:资源共享页面选择创建资源共享

  4. 步骤 1:指定资源共享详细信息中,执行以下操作:

    1. 对于名称,键入资源共享的描述性名称。

    2. 资源下,选择要添加到资源共享的资源,如下所示:

      • 对于选择资源类型,选择要共享的资源的类型。这会将可共享资源的列表筛选为仅所选类型的资源。

      • 在生成的资源列表中,选中要共享的各个资源旁边的复选框。所选资源将移至选定资源下。

        如果您要共享与特定可用区关联的资源,则使用可用区 ID(AZ ID)可帮助您跨账户确定这些资源的相对位置。有关更多信息,请参阅 AWS 资源的可用区 ID

    3. (可选)要将标签附加到资源共享,请在标签下输入标签键和值。通过选择添加新标签,添加其他标签。根据需要重复上述步骤。这些标签仅适用于资源共享本身,不适用于资源共享中的资源。

  5. 选择下一步

  6. 步骤 2:将托管权限与每种资源类型关联中,您可以选择将创建的托管权限 AWS 与资源类型相关联,选择现有的客户托管权限,也可以为支持的资源类型创建自己的客户托管权限。有关更多信息,请参阅 托管权限的类型

    选择创建客户托管权限,以构建符合共享使用案例要求的客户托管权限。有关更多信息,请参阅创建客户托管权限。完成该过程后,选择 Refresh icon ,然后您可以从托管权限下拉列表中选择新的客户托管权限。

    注意

    如果选定的托管权限有多个版本,则 AWS RAM 会自动附加默认版本。您只能 附加指定为默认版本的版本。

    要显示托管权限允许的操作,请展开查看该托管权限的策略模板

  7. 选择下一步

  8. 步骤 3:向主体授予访问权限中,执行以下操作:

    1. 默认情况下,“允许与任何人共享” 处于选中状态,这意味着,对于支持共享的资源类型,您可以与 AWS 账户 组织外部的资源共享资源。这不会影响只能在组织内部共享的资源类型,例如 Amazon VPC 子网。您还可以与IAM角色和用户共享一些支持的资源类型

      要将资源共享限制为仅组织中的账户和主体,请选择仅允许在组织内共享

    2. 对于主体,请执行以下操作:

      • 要添加组织、组织单位 (OU) 或组织的一部分 AWS 账户 ,请打开 “显示组织结构”。这将显示组织的树视图。然后,选中要添加的每个委托人旁边的复选框。

        重要

        当您与组织或 OU 共享,并且该范围包括拥有资源共享的账户时,共享账户中的所有主体都会自动获得对共享中资源的访问权限。授予的访问权限由与共享关联的托管权限定义。这是因为 AWS RAM 附加到共享中每个资源的基于资源的策略使用"Principal": "*"。有关更多信息,请参阅 使用的含义 "Principal": "*" 在基于资源的政策中

        其他所使用账户中的主体无法立即访问共享的资源。其他账户的管理员必须首先将基于身份的权限策略附加到相应的主体。这些策略必须授予ARNs对资源共享中各个资源的Allow访问权限。这些策略中的权限不能超过与资源共享关联的托管权限中指定的权限。

        • 如果您选择组织(ID 以 o- 开头),则组织中所有 AWS 账户 的主体都可以访问资源共享。

        • 如果您选择一个 OU(ID 以开头ou-),则该 OU AWS 账户 中的所有委托人及其子级OUs都可以访问该资源共享。

        • 如果您选择个人 AWS 账户,则只有该账户中的委托人才能访问资源共享。

        注意

        仅当启用与 AWS Organizations 的共享功能并且您已登录到该组织的管理账户时,才会显示显示组织结构切换开关。

        您不能使用此方法来指定组织 AWS 账户 外部人员、IAM角色或用户。相反,您必须关闭 “显示组织结构”,然后使用下拉列表和文本框输入 ID 或ARN。

      • 要通过 ID 指定委托人ARN,或者包括组织外部的委托人,请为每位委托人选择委托人类型。接下来,输入 ID(对于 AWS 账户、组织或 OU)或ARN(IAM角色或用户),然后选择 “添加”。可用的主体类型、ID 和ARN格式如下所示:

        • AWS 账户— 要添加 AWS 账户,请输入 12 位数的账户 ID。例如:

          123456789012

        • 组织-要添加组织 AWS 账户 中的所有组织,请输入组织的 ID。例如:

          o-abcd1234

        • 组织单位(OU)- 要添加 OU,请输入 OU 的 ID。例如:

          ou-abcd-1234efgh

        • IAM角色-要添加IAM角色,请输入ARN该角色的。使用以下语法:

          arn:partition:iam::account:role/role-name

          例如:

          arn:aws:iam::123456789012:role/MyS3AccessRole

          注意

          要获取IAM角色ARN的唯一性,请在IAM控制台中查看角色列表,使用 get-role AWS CLI 命令或操作。GetRoleAPI

        • IAM用户-要添加IAM用户,请输入ARN该用户的。使用以下语法:

          arn:partition:iam::account:user/user-name

          例如:

          arn:aws:iam::123456789012:user/bob

          注意

          要获取IAM用户的唯一ARN值,请在IAM控制台中查看用户列表,使用 get-user AWS CLI 命令,或者 GetUserAPI行动。

      • 服务主体 - 要添加服务主体,请从选择主体类型下拉列表中选择服务主体。输入 AWS 服务主体的名称。使用以下语法:

        • service-id.amazonaws.com

          例如:

          pca-connector-ad.amazonaws.com

    3. 对于所选的主体,请验证您指定的主体是否显示在列表中。

  9. 选择下一步

  10. 步骤 4:查看和创建中,查看资源共享的配置详细信息。要更改任何步骤的配置,请选择与您要返回的步骤对应的链接,然后进行所需的更改。

  11. 查看完资源共享后,选择创建资源共享

    可能需要花几分钟时间,才能完成资源和委托人关联。在尝试使用资源共享之前,允许此过程完成。

  12. 您可以随时添加和删除资源与主体,或将自定义标签应用于资源共享。您可以更改资源共享中包含的资源类型的托管权限,以及支持超过默认托管权限的资源类型的托管权限。您不再希望共享资源时,可以将其删除。有关更多信息,请参阅 共享您拥有的 AWS 资源

AWS CLI
要创建资源共享,请执行以下操作:

使用 create-resource-share命令。以下命令创建与组织 AWS 账户 中的所有人共享的资源共享。该共享包含 AWS License Manager 许可证配置,并授予该资源类型的默认托管权限。

注意

如果您想将客户托管权限与该资源共享中的资源类型一起使用,则可以使用现有的客户托管权限,也可以创建新的客户托管权限。记下ARN客户的托管权限,然后创建资源共享。有关更多信息,请参阅 创建客户托管权限

$ aws ram create-resource-share \ --region us-east-1 \ --name MyLicenseConfigShare \ --permission-arns arn:aws:ram::aws:permission/AWSRAMDefaultPermissionLicenseConfiguration \ --resource-arns arn:aws:license-manager:us-east-1:123456789012:license-configuration:lic-abc123 \ --principals arn:aws:organizations::123456789012:organization/o-1234abcd { "resourceShare": { "resourceShareArn": "arn:aws:ram:us-east-1:123456789012:resource-share/12345678-abcd-09876543", "name": "MyLicenseConfigShare", "owningAccountId": "123456789012", "allowExternalPrincipals": true, "status": "ACTIVE", "creationTime": "2021-09-14T20:42:40.266000-07:00", "lastUpdatedTime": "2021-09-14T20:42:40.266000-07:00" } }