在 亚马逊云科技 中为传统应用程序迁移架构安全模型
应用程序迁移,尤其是从旧版/大型机到云的迁移,是分阶段完成的,有时会持续多年。每个阶段都会将一组应用程序、数据和其他资源迁移到云端。在过渡阶段,应用程序可能需要访问本地和基于云的资源才能执行其功能。在与客户合作时,我们发现应用程序需要访问的最常见资源是数据库、文件存储和共享服务。
这篇博文包括架构指南,用于通过在亚马逊网络服务 (亚马逊云科技) 中构建安全模型来设置对常用资源的访问权限。将传统应用程序迁移到云端时,您可以 根据自己的
在大型组织中,本地应用程序依赖于基于大型机的安全服务、身份提供商 (IdP) 平台或两者的组合。
- 基于大型机的控制设施使本地应用程序能够:
- 识别和验证用户。
- 通过控制工具中定义的权限建立权限(授权用户和后端程序访问受保护的资源)。
- 后端程序使用唯一标识符(或代理密钥),并在分配给唯一标识符的权限下运行。随着应用程序迁移到云端,这种安全机制需要在 亚马逊云科技 中转换为基于角色的安全模型。您可以向角色分配权限,该角色由应用程序承担以访问 亚马逊云科技 中的资源,类似于在传统环境中定义的权限。
- IdP 平台(例如 Octa 或 Ping Identify)使用 SAML 2.0 或 OpenID Connect (OIDC) 提供集中访问管理和身份联合等功能,用于在本地 IdP 和 亚马逊云科技 之间建立信任系统。建立联合后,本地应用程序可以使用 亚马逊云科技 身份和访问管理 (IAM) Access Management 角色访问 亚马逊云科技 资源,如下一节所述。
在 亚马逊云科技 中设置可扩展的安全模型
图 1 显示了一个本地环境,在该环境中,企业身份管理与大型机集成在一起,并为在大型机上运行的应用程序提供身份验证和授权。通常,基于大型机的安全控制(用户、资源和配置文件)会复制到企业身份平台,并通过变更数据捕获流程保持同步。

图 1。从本地访问 亚马逊云科技 资源
为了使您的本地应用程序能够访问 亚马逊云科技 资源,应用程序需要有效的 亚马逊云科技 证书才能发出 亚马逊云科技 API 请求。避免使用长期访问密钥(例如与 IAM 用户关联的密钥),因为在您将其删除之前,它们仍然有效。以下两种方法可用于代入 IAM 角色并获取临时安全证书以获取 亚马逊云科技 资源的访问权限:
- 基于 SAML 的身份联 合 — 亚马逊云科技 支持使用
SAM L 进行身份联合。通过代入为SAML 联合创建的 IAM 角色来获取临时证书,它允许对组织中的用户和应用程序 进行联合 访问。此方法很有用:- 如果您的应用程序需要根据登录的用户限制对 亚马逊云科技 资源的访问权限。您可以根据需要定义
属性映射和其他属性 。 - 如果您的应用程序使用服务账户来管理 亚马逊云科技 资源访问权限,则无论谁登录。
- 如果您的应用程序需要根据登录的用户限制对 亚马逊云科技 资源的访问权限。您可以根据需要定义
-
IAM 角色随处 可见 — 您的本地应用程序将交换 X.509 证书,以便它们可以代入角色并获得临时证书。如果您的应用程序需要基于服务账户访问 亚马逊云科技 资源,则此方法很有用。
在这两种情况下,经过身份验证的请求都扮演 IAM 角色,获取
临时证书在会话到期时过期。默认情况下,会话持续时间为一小时;您可以请求
为了更好地理解,让我们考虑图 2 中的用例,其中本地应用程序需要访问 亚马逊云科技 资源。

图 2。访问已创建或已从本地迁移到 亚马逊云科技 的资源
如前所述,应用程序可以通过 SAML 或 IAM 角色随时随地获得临时安全证书。下一节介绍使用临时证书设置对图 2 中资源的访问权限。
1。亚马逊 S3
本地应用程序可以使用 REST API 或 AWS 开发工具包访问 Amazon S3 以执行某些操作(例如
getObjects 或 ListObjects
):
- 访问权限是根据与假设角色相关的权限提供的。您可以使用基于资源的策略(包括
存储桶策略、存储桶访问控制列表 (ACL) 和对象 ACL) 进一步限制访问权限。 在Amazon S3 用户指南中了解有关访问策略指南 的更多信息 。 - 您还可以通过 为应用程序创建
Amazon S3 接入点 来简化操作,以便在 S3 存储桶中执行对象级操作。每个接入点都有不同的权限和网络控制,S3 将这些权限和网络控制应用于通过它发出的任何请求。
2。亚马逊 RDS 和亚马逊 Aurora
其他配置值可以存储在
要访问亚马逊 RDS 和亚马逊 Aurora,请执行以下操作:
-
- 您可以在
虚拟私有云 (VPC) 中启动 Amazon RDS 数据库实例。客户端应用程序只能使用从本地到 亚马逊云科技 环境的已建立连接,才能通过互联网或私有网络访问数据库实例。 - 本地应用程序可以 使用 Jav
a 数据库 连接 (JDBC) 等数据库驱动程序连接到关系数据库。应用程序可以通过 API 调用从 亚马逊云科技 Secrets Manager 和 亚马逊云科技 Systems Manager 参数存储中检索数据库连接详情 (例如数据库 URL、端口或证书),并将其用于数据库连接。 - 数据库管理员可以通过代入的角色访问
亚马逊云科技 管理控制台 ,也可以从 亚马逊云科技 Secrets Manager 访问数据库证书以直接连接到数据库。对于某些管理任务(例如集群设置、备份、恢复、维护和管理),他们需要访问 Amazon RDS 管理控制台。 - 亚马逊 RDS 还为 MariaDB、MySQL 和 PostgreSQL 提供 IAM 数据库身份验证选项。当您连接到数据库实例时,无需密码即可进行身份验证。相反,您使用身份验证令牌。有关更多信息,请访问
IAM 数据库身份验证 。
- 您可以在
3。Amazon DynamoDB
应用程序可以使用临时证书使用适用于 D
结论
此博客可帮助您在 亚马逊云科技 中架构应用程序安全模型,以提供对 亚马逊云科技 中常用资源的本地访问。
在将传统应用程序迁移到云端时,您可以应用安全最佳实践和零信任概念。借助 亚马逊云科技,您可以对员工
开始在 亚马逊云科技 上构建您的安全模型:
-
亚马逊云科技 身份和访问管理 (IAM) 入门 -
IAM 入门(用户指南)