Amazon Serverless Application Repository应用程序策略例 - Amazon Serverless Application Repository
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

Amazon Serverless Application Repository应用程序策略例

附加到的权限策略Amazon Serverless Application Repository应用程序被称为应用程序策. 应用程序策略确定指定的委托人或 PrincpLorg 可以对Amazon Serverless Application Repository应用程序.

网络 ACL 和安全组都允许 (因此可到达您的实例) 的发起 ping 的Amazon Serverless Application Repository 应用程序是主要的Amazon中的资源Amazon Serverless Application Repository.Amazon Serverless Application Repository应用程序策略主要由发布者用于向使用者授予部署其应用程序以及执行相关操作(如搜索和查看这些应用程序的详细信息)的权限。

发布者可以将应用程序权限设置为以下三个类别:

  • 私密— 使用同一账户创建但尚未与任何其他账户共享的应用程序。只有分享你的消费者Amazon帐户有权部署私有应用程序。

  • 私下共享— 发布者已明确与特定组共享的应用程序Amazon账户,或使用Amazon中的账户Amazon组织。使用者有权部署已与其共享的应用程序。Amazon账户或Amazon组织。有关 的更多信息Amazon组织,请参阅Amazon Organizations用户指南.

  • 公开共享— 发布者已与所有人共享的应用程序。所有使用者都有权部署任何公开共享的应用程序。

注意

适用于私下共享的应用,Amazon Serverless Application Repository仅支持Amazon账户作为委托人。发布者可以授予或拒绝在Amazon账户作为单个组加入Amazon Serverless Application Repository应用程序. 发布者不能授予或拒绝在Amazon账户到Amazon Serverless Application Repository应用程序.

有关使用 Amazon Web Services Management Console设置应用程序权限的说明,请参阅共享应用程序

有关使用 Amazon CLI 和示例设置应用程序权限的说明,请参阅以下部分。

应用程序权限 (Amazon CLI和Amazon开发工具包)

当您使用的是Amazon CLI或者Amazon用于设置权限的 SDKAmazon Serverless Application Repository应用程序,您可以指定以下操作:

操作 描述
GetApplication

授予查看有关应用程序的信息的权限。

CreateCloudFormationChangeSet

授予部署应用程序的权限。

注意:这个动作确实授予除部署之外的任何其他权限。

CreateCloudFormationTemplate

授予为应用程序创建 Amazon CloudFormation 模板的权限。

ListApplicationVersions 授予列出应用程序的版本的权限。
ListApplicationDependencies 授予列出包含应用程序中嵌套的应用程序的权限。
SearchApplications 授予搜索应用程序的权限。
部署

此操作启用表中前面列出的所有操作。也就是说,它授予查看应用程序、部署应用程序、列出版本以及搜索应用程序的权限。

应用程序策略例

以下示例演示如何使用 Amazon CLI 授予权限。有关如何使用 Amazon Web Services Management Console授予权限的信息,请参阅共享应用程序

本节中的所有示例都使用这些 Amazon CLI 命令来管理与 Amazon Serverless Application Repository 应用程序关联的权限策略:

示例 1:与其他账户共享应用程序

要与另一个特定账户共享应用程序,但阻止与其他账户共享,请将Amazon您要作为委托人共享的账户 ID。这也称为将应用程序设置为私下共享。要执行此操作,请使用以下 Amazon CLI 命令。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id,Actions=Deploy
注意

私下共享应用程序只能在同一版本中使用Amazon创建应用程序的区域。

示例 2:公开共享应用程序

要使应用程序公开,请通过将“*”指定为委托人来与每个人共享应用程序,如以下示例所示。公开共享的应用程序在所有区域中都可用。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=*,Actions=Deploy
注意

要公开共享应用程序,它必须同时设置了 SemanticVersionLicenseUrl 属性。

示例 3:使应用程序成为私有的

您可以使应用程序成为私有的,从而不与任何人共享,并且只能由Amazon拥有它的账户。为此,您需要清除策略中的委托人和操作,这也会删除您的策略中的其他账户的权限。Amazon组织部署您的应用程序。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements '[]'
注意

私密应用程序只能在同一版本中使用Amazon创建应用程序的区域。

示例 4:指定多个账户和权限

您可以授予多个权限,并且可以向多个权限授予这些权限。Amazon一次账户。为此,您可以将列表指定为委托人和操作,如以下示例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationChangeSet

示例 5:与中的所有账户共享应用程序Amazon组织

可以向中的所有用户授予权限Amazon组织。您可以通过指定组织 ID 来执行此操作,如以下示例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=*,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication

有关的更多信息Amazon组织,请参阅Amazon Organizations用户指南.

注意

您只能指定Amazon您的组织Amazon账户是的成员。如果你尝试指定Amazon您不是其成员的组织,则会导致错误。

与你的应用程序共享Amazon组织,您必须包含UnshareApplication采取操作,以防将来需要撤销共享。

示例 6:与中的某些账户共享应用程序Amazon组织

可以向中的特定账户授予权限Amazon组织。您可以通过指定Amazon账户作为委托人以及您的组织 ID,如以下示例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,PrincipalOrgIDs=org-id,Actions=Deploy,UnshareApplication
注意

您只能指定Amazon您的组织Amazon账户是的成员。如果你尝试指定Amazon您不是其成员的组织,则会导致错误。

与你的应用程序共享Amazon组织,您必须包含UnshareApplication采取操作,以防将来需要撤销共享。

示例 7:检索应用程序策略

要查看应用程序的当前策略,例如,要查看它当前是否共享,您可以使用 get-application-policy 命令,如以下示例所示。

aws serverlessrepo get-application-policy \ --region region \ --application-id application-arn

示例 8:允许特定账户嵌套应用程序

允许任何人嵌套公有应用程序。如果您希望只允许特定账户嵌套您的应用程序,则必须设置以下最低权限,如以下示例所示。

aws serverlessrepo put-application-policy \ --region region \ --application-id application-arn \ --statements Principals=account-id-1,account-id-2,Actions=GetApplication,CreateCloudFormationTemplate