添加 SSR 计算角色以允许对 AWS 资源的访问 - AWS Amplify 托管

添加 SSR 计算角色以允许对 AWS 资源的访问

通过这一集成,您可以为 Amplify SSR 计算服务分配 IAM 角色,从而让服务器端渲染(SSR)应用程序能够基于该角色的权限安全地访问特定的 AWS 资源。例如,您可以允许应用程序的 SSR 计算函数根据所分配 IAM 角色中定义的权限,安全地访问其他 AWS 服务或资源(例如 Amazon Bedrock 或 Amazon S3 存储桶)。

IAM SSR 计算角色会提供临时凭证,因此无需在环境变量中对长期存在的安全凭证进行硬编码。使用 IAM SSR 计算角色符合授予最低权限和尽可能使用短期凭证的 AWS 安全最佳实践要求。

本节后面的说明将介绍如何创建具有自定义权限的策略并将该策略附加到角色。创建该角色时,必须附加一个向 Amplify 授予代入该角色的权限的自定义信任策略。如果未正确定义信任关系,尝试添加该角色时将会出现错误。以下自定义信任策略将向 Amplify 授予代入该角色的权限。

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": [ "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }

您可以通过 Amplify 控制台、AWS SDK 或 AWS CLI,将您 AWS 账户中的 IAM 角色关联到现有的 SSR 应用程序。您附加的角色会自动关联到 Amplify SSR 计算服务,从而向其授予您指定的访问其他 AWS 资源的权限。随着应用程序的需求逐渐变化,您只需修改附加的 IAM 角色,而无需重新部署应用程序。这不仅提供了灵活性,同时也减少了应用程序停机时间。

重要

您负责根据自己的安全性和合规性目标配置应用程序。这包括管理您的 SSR 计算角色,为其配置支持您的使用案例所需的最低权限集。有关更多信息,请参阅 管理 IAM SSR 计算角色的安全性

在 IAM 控制台中创建 SSR 计算角色

IAM SSR 计算角色必须首先已经存在于您的 AWS 账户中,然后才能将其附加到 Amplify 应用程序。本节将介绍如何创建 IAM 策略并将其附加到一个角色,以便 Amplify 代入该角色来访问特定的 AWS 资源。

我们建议您在创建 IAM 角色时遵循授予最低权限的 AWS 最佳实践要求。IAM SSR 计算角色只能从 SSR 计算函数调用,因此应仅向其授予运行代码所需的权限。

您可以使用 AWS 管理控制台、AWS CLI 或 SDK 在 IAM 中创建策略。有关更多信息,请参阅《IAM 用户指南》中的使用客户管理型策略定义自定义 IAM 权限

以下说明演示了如何使用 IAM 控制台创建向 Amplify 计算服务授予若干权限的 IAM 策略。

使用 IAM 控制台 JSON 策略编辑器创建策略
  1. 登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在左侧的导航窗格中,选择策略

  3. 选择创建策略

  4. 策略编辑器部分,选择 JSON 选项。

  5. 键入或粘贴一个 JSON 策略文档。

  6. 向策略添加完权限后,选择下一步

  7. 查看和创建页面上,为创建的策略键入策略名称描述(可选)。查看此策略中定义的权限以查看策略授予的权限。

  8. 选择创建策略可保存新策略。

创建策略之后,按照以下说明将该策略附加到 IAM 角色。

创建向 Amplify 授予对特定 AWS 资源的权限的角色
  1. 登录 AWS 管理控制台,然后通过以下网址打开 IAM 控制台:https://console.aws.amazon.com/iam/

  2. 在控制台的导航窗格中,选择 Roles,然后选择 Create role

  3. 选择 Custom trust policy(自定义信任策略)角色类型。

  4. 自定义信任策略部分中,输入该角色的自定义信任策略。必须具有角色信任策略,其中定义了您信任可以代入该角色的主体。

    复制并粘贴以下信任策略,向 Amplify 服务授予代入该角色的权限。

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Sid": "Statement1", "Effect": "Allow", "Principal": { "Service": [ "amplify.amazonaws.com" ] }, "Action": "sts:AssumeRole" } ] }
  5. 解决策略验证过程中生成的任何安全警告、错误或常规警告,然后选择下一步

  6. 添加权限页面上,搜索您在上一过程中所创建策略的名称,然后将选中该策略。然后选择下一步

  7. 对于 Role name(角色名称),输入一个角色名称。角色名称在您的 AWS 账户 内必须是唯一的。名称不区分大小写。例如,您无法同时创建名为 PRODROLEprodrole 的角色。由于其他 AWS 资源可能引用该角色,角色创建完毕后无法编辑角色名称。

  8. (可选)对于 Description(描述),输入新角色的描述。

  9. (可选)在步骤 1:选择受信任的实体步骤 2:添加权限部分中选择编辑,以编辑角色的自定义策略和权限。

  10. 检查角色,然后选择创建角色

将 IAM SSR 计算角色添加到 Amplify 应用程序

在您的 AWS 账户中创建 IAM 角色后,可在 Amplify 控制台中将其关联到某个应用程序。

在 Amplify 控制台中将 IAM SSR 计算角色添加到应用程序
  1. 访问 https://console.aws.amazon.com/efs/,登录 AWS 管理控制台 并打开 Amplify 控制台。

  2. 所有应用程序页面上,选择要向其添加计算角色的应用程序的名称。

  3. 在导航窗格中,依次选择应用程序设置IAM 角色

  4. 计算角色部分中,选择编辑

  5. 默认角色列表中,搜索要附加的角色的名称,然后选中该角色。在此例中,您可以选择在上一过程中所创建角色的名称。默认情况下,您选中的角色将关联到应用程序的所有分支。

    如果未正确定义角色的信任关系,将会出现错误并且您将无法添加该角色。

  6. (可选)如果应用程序位于公有存储库中,并且使用自动创建分支功能或启用了拉取请求 Web 预览功能,则我们不建议使用应用程序级别的角色。而应仅将计算角色附加到需要访问特定资源的分支。要覆盖默认的应用程序级别行为并将角色附加到特定的分支,请执行以下操作:

    1. 对于分支,选择要使用的分支的名称。

    2. 对于计算角色,选择要与该分支关联的角色的名称。

  7. 选择保存

管理 IAM SSR 计算角色的安全性

安全性是 AWS 和您的共同责任。您负责根据自己的安全性和合规性目标配置应用程序。这包括管理您的 SSR 计算角色,为其配置支持您的使用案例所需的最低权限集。您指定的 SSR 计算角色凭证将在 SSR 函数的运行时中立即可用。如果 SSR 代码故意、由于错误或通过允许远程代码执行(RCE)暴露了这些凭证,则未经授权的用户可能会获得该 SSR 角色及其权限的访问权限。

当公有存储库中的应用程序使用 SSR 计算角色和自动分支创建功能,或为所有拉取请求启用 Web 预览时,您需要仔细管理有权访问该角色的分支。我们建议不要使用应用程序级别的角色,而应在分支级别附加计算角色。这可让您仅向需要访问特定资源的分支授予访问权限。

如果角色的凭证泄露,请执行以下操作移除对该角色的凭证的所有访问权限。

  1. 撤销所有会话

    有关立即撤销对该角色的凭证的所有权限的说明,请参阅撤销 IAM 角色临时安全凭证

  2. 从 Amplify 控制台移除该角色

    此操作将立即生效。您不需要重新部署应用程序。

在 Amplify 控制台中删除计算角色
  1. 访问 https://console.aws.amazon.com/efs/,登录 AWS 管理控制台 并打开 Amplify 控制台。

  2. 所有应用程序页面上,选择要从中移除计算角色的应用程序的名称。

  3. 在导航窗格中,依次选择应用程序设置IAM 角色

  4. 计算角色部分中,选择编辑

  5. 要删除默认角色,请选择角色名称右侧的 X

  6. 选择保存