AWS Serverless Application Repository 如何与 IAM 协同工作 - AWS Serverless Application Repository
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

如果我们为英文版本指南提供翻译,那么如果存在任何冲突,将以英文版本指南为准。在提供翻译时使用机器翻译。

AWS Serverless Application Repository 如何与 IAM 协同工作

在使用 IAM 管理对 AWS Serverless Application Repository 的访问之前,您应了解哪些 IAM 功能可与 AWS Serverless Application Repository 结合使用。

要概括了解 IAM 的工作原理,请参阅 IAM 用户指南 中的了解 IAM 工作原理。要概括了解 AWS Serverless Application Repository 及其他 AWS 服务如何与 IAM 协同工作,请参阅 IAM 用户指南 中的可与 IAM 协同工作的 AWS 服务

AWS Serverless Application Repository 基于身份的策略

通过使用 IAM 基于身份的策略,您可以指定允许或拒绝的操作和资源以及允许或拒绝操作的条件。AWS Serverless Application Repository 支持特定的操作、资源和条件键。要了解您在 JSON 策略中使用的所有元素,请参阅 IAM 用户指南 中的 IAM JSON 策略元素参考

下面介绍权限策略示例。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateApplication" ], "Resource": "*" }, { "Sid": "CreateApplicationVersion", "Effect": "Allow", "Action": [ "serverlessrepo:CreateApplicationVersion" ], "Resource": "arn:partition:serverlessrepo:region:account-id:applications/application-name" } ] }

该策略包含两条语句:

  • 第一个语句授予对所有 AWS Serverless Application Repository 资源执行 AWS Serverless Application Repository 操作 serverlessrepo:CreateApplication 的权限,通过通配符 (*) 将所有这些资源指定为 Resource 值。

  • 第二个语句通过使用 AWS Serverless Application Repository 应用程序的 Amazon 资源名称 (ARN) 来授予对 AWS 资源执行 AWS Serverless Application Repository 操作 serverlessrepo:CreateApplicationVersion 的权限。通过 Resource 值来指定应用程序。

该策略不指定 Principal 元素,因为在基于身份的策略中,您未指定获取权限的委托人。附加了策略的用户是隐式委托人。向 IAM 角色附加权限策略后,该角色的信任策略中标识的委托人将获取权限。

有关显示所有 AWS Serverless Application Repository API 操作及其适用的 AWS 资源的表,请参阅 AWS Serverless Application Repository API 权限:操作和资源参考

操作

基于 IAM 身份的策略的 Action 元素描述该策略将允许或拒绝的特定操作。策略操作通常与关联的 AWS API 操作同名。此策略用于策略中以授予执行关联操作的权限。

AWS Serverless Application Repository 中的策略操作在操作前使用以下前缀:serverlessrepo:。例如,要授予某人使用 AWS Serverless Application Repository SearchApplications API 操作运行 AWS Serverless Application Repository 实例的权限,您应将 serverlessrepo:SearchApplications 操作纳入其策略。策略语句必须包含 ActionNotAction 元素。AWS Serverless Application Repository 定义了一组自己的操作,以描述您可以使用该服务执行的任务。

要在单个语句中指定多项操作,请使用逗号将它们隔开,如下所示:

"Action": [ "serverlessrepo:action1", "serverlessrepo:action2" ]

您也可以使用通配符 (*) 指定多个操作。例如,要指定以单词 List 开头的所有操作,包括以下操作:

"Action": "serverlessrepo:List*"

要查看 AWS Serverless Application Repository 操作的列表,请参阅 IAM 用户指南 中的 Actions Defined by AWS Serverless Application Repository

资源

Resource 元素指定要向其应用操作的对象。语句必须包含 ResourceNotResource 元素。您可使用 ARN 来指定资源,或使用通配符 (*) 以指明该语句适用于所有资源。

在 AWS Serverless Application Repository 中,主要 AWS 资源是一个 AWS Serverless Application Repository 应用程序。AWS Serverless Application Repository 应用程序具有关联的唯一 Amazon 资源名称 (ARN),如下表所示。

AWS 资源类型 Amazon 资源名称 (ARN) 格式
应用程序

arn:partition:serverlessrepo:region:account-id:applications/application-name

有关 ARN 格式的更多信息,请参阅 Amazon 资源名称 (ARN) 和 AWS 服务命名空间

以下示例策略授予对所有 AWS 资源执行 serverlessrepo:ListApplications 操作的权限。在当前实现中,AWS Serverless Application Repository 对某些 API 操作不支持使用 AWS 资源 ARN(也称为资源级权限)标识特定 AWS 资源。在这些情况下,您必须指定通配符 (*)。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ListExistingApplications", "Effect": "Allow", "Action": [ "serverlessrepo:ListApplications" ], "Resource": "*" } ] }

有关显示所有 AWS Serverless Application Repository API 操作及其适用 AWS 资源的表,请参阅 AWS Serverless Application Repository API 权限:操作和资源参考

条件键

AWS Serverless Application Repository 不提供任何特定于服务的条件键,但支持使用某些全局条件键。要查看所有 AWS 全局条件键,请参阅 IAM 用户指南 中的 AWS 全局条件上下文键

示例

要查看 AWS Serverless Application Repository 基于身份的策略的示例,请参阅AWS Serverless Application Repository 基于身份的策略示例

AWS Serverless Application Repository 基于资源的策略

基于资源的策略确定指定的委托人可以对 AWS Serverless Application Repository 资源执行的操作和所需的条件。

AWS Serverless Application Repository 应用程序是 AWS Serverless Application Repository 中的主要 AWS 资源。您可以将权限添加到与 AWS Serverless Application Repository 应用程序关联的策略。附加到 AWS Serverless Application Repository 应用程序的权限策略称为基于资源的策略(或应用程序策略)。您可以使用 AWS Serverless Application Repository 应用程序策略来管理应用程序部署权限。

AWS Serverless Application Repository 应用程序策略主要由发布者用于向使用者授予部署其应用程序以及执行相关操作(如搜索和查看这些应用程序的详细信息)的权限。发布者可以将应用程序权限设置为以下三个类别:

  • 私有 – 使用同一账户创建但尚未与任何其他账户共享的应用程序。您有权部署使用您的 AWS 账户创建的应用程序。

  • 私下共享 – 发布者已明确与特定的一组 AWS 账户或 AWS Organizations 共享的应用程序。您有权部署已与您的 AWS 账户或 AWS 组织共享的应用程序。

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

您可以使用 AWS CLI、AWS 开发工具包或 AWS 管理控制台授予权限。

示例

要查看管理 AWS Serverless Application Repository 基于资源的策略的示例,请参阅AWS Serverless Application Repository 基于资源的策略示例

基于 AWS Serverless Application Repository 标签的授权

AWS Serverless Application Repository 不支持基于标签控制对资源或操作的访问。

AWS Serverless Application Repository IAM 角色

IAM 角色是 AWS 账户中具有特定权限的实体。

将临时凭证用于 AWS Serverless Application Repository

您可以使用临时凭证进行联合身份登录、代入 IAM 角色或代入跨账户角色。您可以通过调用 AWS STS API 操作(如 AssumeRoleGetFederationToken)获得临时安全凭证。

AWS Serverless Application Repository 支持使用临时凭证。

服务相关角色

AWS Serverless Application Repository 不支持服务相关角色。

服务角色

AWS Serverless Application Repository 不支持服务角色。