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

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

Amazon Serverless Application Repository 基于身份的策略示例

预设情况下,IAM 用户和角色没有创建或修改 Amazon Serverless Application Repository 资源的权限。它们还无法使用 Amazon Web Services Management Console、Amazon CLI 或 Amazon API 执行任务。IAM 管理员必须创建 IAM 策略,以便为用户和角色授予权限以对所需的指定资源执行特定的 API 操作。然后,管理员必须将这些策略附加到需要这些权限的 IAM 用户或组。

要了解如何使用这些示例 JSON 策略文档创建基于 IAM 身份的策略,请参阅在“JSON”选项卡上创建策略中的IAM 用户指南.

策略最佳实践

基于身份的策略非常强大。它们确定某个人是否可以创建、访问或删除您账户中的 Amazon Serverless Application Repository 资源。这些操作可能会使 Amazon 账户产生成本。创建或编辑基于身份的策略时,请遵循以下准则和建议:

  • 授予最低权限 – 创建自定义策略时,仅授予执行任务所需的许可。最开始只授予最低权限,然后根据需要授予其它权限。这样做比起一开始就授予过于宽松的权限而后再尝试收紧权限来说更为安全。有关更多信息,请参阅 IAM 用户指南 中的 授予最低权限

  • 为敏感操作启用 MFA – 为增强安全性,要求 IAM 用户使用多重身份验证 (MFA) 来访问敏感资源或 API 操作。有关更多信息,请参阅《IAM 用户指南》中的在 Amazon 中使用多重身份验证(MFA)

  • 使用策略条件来增强安全性 – 在切实可行的范围内,定义基于身份的策略在哪些情况下允许访问资源。例如,您可编写条件来指定请求必须来自允许的 IP 地址范围。您也可以编写条件,以便仅允许指定日期或时间范围内的请求,或者要求使用 SSL 或 MFA。有关更多信息,请参阅 。IAM JSON 策略元素:Condition中的IAM 用户指南.

使用 Amazon Serverless Application Repository 控制台

Amazon Serverless Application Repository 控制台为您提供了一个发现和管理 Amazon Serverless Application Repository 应用程序的集成环境。此控制台提供了多种功能和工作流,通常需要管理 Amazon Serverless Application Repository 应用程序的权限以及 Amazon Serverless Application RepositoryAPI 权限:操作和资源参考中记录的特定于 API 的权限。

有关使用 Amazon Serverless Application Repository 控制台所需的权限的更多信息,请参阅客户托管策略示例

允许用户查看他们自己的权限

该示例说明了您如何创建策略,以允许 IAM 用户查看附加到其用户身份的内联和托管式策略。此策略包括在控制台上完成此操作或者以编程方式使用 Amazon CLI 或 Amazon API 所需的权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }

客户托管策略示例

此部分中的示例提供了一组可附加到用户的示例策略。如果您是首次创建策略,建议您先在账户中创建 IAM 用户并按顺序将策略附加到用户。您还可以使用这些示例创建单个自定义策略(其中包括执行多个操作的权限),然后将其附加到用户。

有关如何向用户附加策略的详细信息,请参阅向用户添加权限中的IAM 用户指南.

示例 1:允许发布者列出应用程序

您的账户中的 IAM 用户必须先具有 serverlessrepo:ListApplications 操作权限,然后才能在控制台中查看任何内容。在您授予这些权限时,控制台会显示Amazon Serverless Application Repository中的应用程序Amazon在特定账户中创建Amazon列出用户所属的区域。

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

 

示例 2:允许发布者查看应用程序或应用程序版本的详细信息

用户可以选择一个 Amazon Serverless Application Repository 应用程序并查看该应用程序的详细信息。此类详细信息包括作者、说明、版本和其他配置信息。为此,用户需要 Amazon Serverless Application Repository 的 serverlessrepo:ListApplicationVersionsserverlessrepo:GetApplication API 操作的权限。

在以下示例中,为将其 Amazon 资源名称 (ARN) 指定为 Resource 值的特定应用程序授予这些权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewApplication", "Effect": "Allow", "Action": [ "serverlessrepo:GetApplication", "serverlessrepo:ListApplicationVersions" ], "Resource": "arn:aws:serverlessrepo:region:account-id:applications/application-name" } ] }

 

示例 3:允许发布者创建应用程序或应用程序版本

如果您希望允许用户具有创建 Amazon Serverless Application Repository 应用程序的权限,则需要授予 serverlessrepo:CreateApplicationserverlessrepo:CreateApplicationVersions 操作的权限,如以下策略所示。

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

 

示例 4:允许发布者创建应用程序策略以与其他人共享应用程序

要使用户与其他人共享应用程序,您必须向这些用户授予创建应用程序策略的权限,如以下策略所示。

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

 

示例 1:允许使用者搜索应用程序

要使使用者能够搜索应用程序,您必须向他们授予以下权限。

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

 

示例 2:允许使用者查看应用程序的详细信息

用户可以选择一个 Amazon Serverless Application Repository 应用程序并查看该应用程序的详细信息,如作者、说明、版本和其他配置信息。为此,用户必须具有以下 Amazon Serverless Application Repository 操作的权限。

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

 

示例 3:允许使用者部署应用程序

要使使用者能够部署应用程序,您必须向他们授予执行许多操作的权限。以下策略为客户提供了所需权限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DeployApplication", "Effect": "Allow", "Action": [ "serverlessrepo:CreateCloudFormationChangeSet", "cloudformation:CreateChangeSet", "cloudformation:ExecuteChangeSet", "cloudformation:DescribeStacks" ], "Resource": "*" } ] }
注意

部署应用程序可能需要使用其他权限Amazon资源的费用。由于Amazon Serverless Application Repository使用与Amazon CloudFormation,请参阅使用 控制访问AmazonIdentity and Access Management有关更多信息。要了解与权限相关的部署问题的帮助,请参阅故障排除:IAM 权限不足.

示例 4:拒绝访问部署资产

当应用程序与私下共享Amazon账户,默认情况下,该账户中的所有用户都可以访问同一账户中所有其他用户的部署资产。以下策略阻止账户中的用户访问部署资产,这些资产存储在的 Amazon S3 存储桶中。Amazon Serverless Application Repository.

{ "Version": "2012-10-17", "Statement": [ { "Sid": "DenyDeploymentAssetAccess", "Effect": "Deny", "Action": [ "s3:GetObject" ], "Resource": [ "arn:aws:s3:::awsserverlessrepo-changesets*/*" ] } ] }

示例 5:防止使用者搜索和部署公有应用程序

您可以阻止用户对应用程序执行某些操作。

以下策略通过将 serverlessrepo:applicationType 指定为 public 来应用于公有应用程序。它可以通过将 Effect 指定为 Deny 来阻止用户执行许多操作。有关可用于 Amazon Serverless Application Repository 的条件键的更多信息,请参阅 Amazon Serverless Application Repository 的操作、资源和条件键

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringEquals": { "serverlessrepo:applicationType": "public" } }, "Action": [ "serverlessrepo:SearchApplications", "serverlessrepo:GetApplication", "serverlessrepo:CreateCloudFormationTemplate", "serverlessrepo:CreateCloudFormationChangeSet", "serverlessrepo:ListApplicationVersions", "serverlessrepo:ListApplicationDependencies" ], "Resource": "*", "Effect": "Deny" } ] }
注意

此策略语句也可用作服务控制策略,并应用于Amazon组织。有关服务控制策略的详细信息,请参阅服务控制策略中的Amazon Organizations用户指南.