首页 > 其他分享 >庆祝Amazon Cognito十周年:历史年表与功能全解析

庆祝Amazon Cognito十周年:历史年表与功能全解析

时间:2024-08-13 18:23:59浏览次数:9  
标签:Cognito AWS 用户 认证 Amazon 十周年 Pools

本文聚焦于2014年7月10日宣布并正式推出的Amazon Cognito,这是一个无服务器且完全托管的认证和授权服务。2024年7月10日,Amazon Cognito发布十周年。文章中,我回顾了Cognito自发布以来的主要功能添加和更新,目的是提供对AWS服务功能以及这些功能如何随时间发展的洞见。

Amazon Cognito历史年表的创建背景和方法

此次创建Amazon Cognito历史年表的原因,是为了纪念Amazon Cognito在2024年迎来发布10周年。

此外,自2014年7月Amazon Cognito发布并成为正式发布(GA)以来,已经与多种AWS服务进行了集成,并扩展了其功能。基于这一点,我希望通过以下方法来整理Amazon Cognito的信息:

  1. 整理Amazon Cognito的历史并追踪更新的演变
  2. 总结Amazon Cognito的功能列表及其特点

该年表主要参考了以下博客和文档中关于Amazon Cognito的内容:

由于参考的资料在公告或文章发布时间上有所差异,因此年表中的日期可能会有所不同。列出的内容仅限于与当前Amazon Cognito相关的主要功能及其概要说明。换句话说,年表中展示的内容并非涵盖了所有的Amazon Cognito功能更新,而是我挑选出的代表性更新,请注意这一点。

Amazon Cognito历史年表(2014年7月10日~2024年7月10日的更新)

接下来是关于Amazon Cognito功能的年表。

年月日概要
2014/07/10Amazon Cognito 发布公告并正式发布 (GA)。
最初,Amazon Cognito 将与 Amazon、Facebook 和 Google 等现有身份提供商合作,支持未经身份验证的访客用户并安全地管理用户特定的数据,以及负责数据同步的身份池,并提供与 Cognito Sync 等效的功能,在设备之间同步应用程序设置、游戏状态等。
2014/09/29将添加经过开发人员身份验证的身份,允许您使用自己的用户 ID 系统。您现在可以使用自己的身份验证和身份管理系统作为 Amazon Cognito 身份提供商。
2014/10/23添加对 OpenID Connect 提供商的支持。
2014/11/06添加了对与 Amazon Cognito Sync 的推送同步的支持。
2015/03/04添加了 Amazon Cognito Streams,它会自动将用户身份数据流式传输到 Amazon Kinesis,让您能够控制和深入了解数据流。
2015/04/09添加了与 AWS Lambda 的集成,允许您运行 AWS Lambda 函数来响应重要的 Amazon Cognito 事件。
2015/04/30Twitter 和 Digits 将被添加为公共登录提供商。
2016/02/18您现在可以使用 AWS CloudTrail 跟踪 Amazon Cognito 身份池和 Amazon Cognito Sync 的创建、修改和删除。
2016/04/19您现在可以使用 Amazon Cognito 身份池添加用户注册和登录。
2016/06/23添加了对身份提供商使用 SAML2.0 进行身份验证的支持。
2016/07/28Amazon Cognito 用户池现已全面推出。创建和维护用户目录并使用用户池向您的移动和 Web 应用程序添加注册和登录功能。
2016/09/01批量导入功能将添加到 Amazon Cognito 用户池中。允许用户从现有身份提供商迁移到 Amazon Cognito 用户池。
您现在可以使用 AWS CloudTrail 跟踪 Amazon Cognito 用户池的创建、修改和删除。
2016/10/06添加了管理员在 Amazon Cognito 控制台和 API 中创建用户账户的功能。
2016/11/09借助 AWS Mobile Hub 中的电子邮件和密码选项,您现在可以使用 Amazon Cognito 为您的应用程序预置完全托管的用户目录。
2016/12/15Amazon Cognito 用户池添加了组功能。 Amazon Cognito 身份池添加了基于角色的访问控制 (RBAC)。
2017/04/28Amazon Cognito 现已受 AWS CloudFormation 支持。
2017/07/06Amazon Cognito 符合 HIPAA 资格和 PCI 合规性。允许用户使用电话号码或电子邮件地址作为用户名。
2017/08/10Amazon Cognito 用户池添加了联合和内置应用程序 UI 功能。用户现在可以使用 OAuth 2.0 通过 Facebook、Google、Login with Amazon 和 SAML 身份提供商登录用户池。
2017/09/26添加与 Amazon Pinpoint 的集成。您现在可以使用 Amazon Pinpoint 分析您的 Amazon Cognito 用户池应用程序并丰富您的 Amazon Pinpoint 活动的用户数据。
2017/11/28将添加 Amazon Cognito 高级安全性(测试版)。保护应用程序和用户免受恶意机器人的侵害,保护用户帐户免受互联网上其他地方泄露的凭据的影响,并根据计算的登录尝试风险自动挑战登录。将添加新的安全功能进行调整。
2018/02/08支持 Amazon Cognito Lambda 迁移触发器。使您能够验证用户池中是否存在用户并将用户的配置文件数据从现有应用程序目录复制到用户池。
2018/05/17使用 OpenID Connect (OIDC) 身份提供商(Salesforce、Ping Identity 等)登录已添加到 Amazon Cognito 用户池中。
2018/06/04您现在可以使用自己的自定义域作为 Amazon Cognito 用户池上托管的登录 UI。
2018/06/14Amazon Cognito 高级安全性现已全面推出。保护应用程序和用户免受恶意机器人的侵害,保护用户帐户免受互联网上其他地方泄露的凭据的影响,并根据计算的登录尝试风险自动挑战登录。将添加新的安全功能进行调整。
2019/01/22Amazon Cognito 宣布 99.9% 的服务级别协议 (SLA)。
2019/03/26添加标签支持。添加有关标记 Amazon Cognito 资源的信息。
2019/04/08为 Amazon Cognito 用户池添加了 Amazon SES 电子邮件配置功能。您现在可以配置用户池,以便 Amazon Cognito 使用 Amazon SES 设置向您的用户发送电子邮件。
2019/05/06添加了用户密码重置 API,允许管理员为最终用户设置临时或永久密码。即使经过验证的电话或电子邮件地址不可用,最终用户也可以使用它。
2019/10/07能够安全、自动地在 AWS CloudFormation 中配置 Amazon Cognito 托管 UI 域、配置托管 UI 自定义、配置 IdentityProvider、配置 Amazon Cognito 高级安全行为、资源 配置服务器的其他支持。
2019/11/20Amazon Cognito 用户池现在支持通过 Apple 登录。
2019/11/26支持对 Amazon Cognito 用户池的忘记密码恢复方法进行优先排序。
2020/01/10Amazon Cognito 现在支持 Amazon CloudWatch 使用指标。
2020/02/05AWS CloudTrail 现在支持记录 Amazon Cognito 用户池的所有 API 调用。
2020/02/12Amazon Cognito 用户池现在支持不区分大小写的用户别名。现在建议在创建用户池之前禁用用户名区分大小写。
2020/04/07Amazon Cognito 身份池现在支持使用 Apple 登录。
2020/08/12Amazon Cognito 用户池现在支持自定义访问令牌和刷新令牌过期时间。
2020/10/30您现在可以使用 AWS 服务配额和 Amazon CloudWatch 指标来管理配额并跟踪 Amazon Cognito 用户池的使用情况。
2021/01/14Amazon Cognito 身份池允许您使用身份提供商的用户属性控制访问,从而简化对 AWS 资源的权限管理。
2021/06/02Amazon Cognito 现在支持 Amazon SNS SMS 沙盒。
2021/06/10Amazon Cognito 现在通过实时撤销刷新令牌来支持定向注销。添加了 RevokeToken API 和撤销端点,允许您使用 RevokeToken 操作撤销用户的刷新令牌。
2021/11/18Amazon Cognito 用户池添加了新的控制台体验。
2022/03/14Amazon Cognito 用户池支持与 Amazon SNS 和 Amazon SES 的同区域集成。您现在可以使用 Amazon SNS 发送 SMS 消息,使用 Amazon SES 发送电子邮件。
2022/05/31Amazon Cognito 高级安全性改进了风险评估,允许对 Amazon Cognito 进行未经身份验证的调用来传播 IP 地址作为调用者上下文数据的一部分。
2022/08/11您现在可以将 AWS WAF Web ACL 与 Amazon Cognito 用户池关联。
2022/09/09您现在可以在 Amazon Cognito 的托管 UI 中注册基于时间的一次性密码 (TOTP) MFA 设备。
2022/10/24Amazon Cognito User Poolsの削除保护を提供开始。
2023/02/15AWS CloudTrail 现在可以记录 Amazon Cognito 身份池的数据事件。
2023/05/16改进了 Amazon Cognito 身份池的控制台体验。
2023/08/01Amazon Verified Permissions 现已全面推出 (GA),为应用程序提供集成身份验证和授权解决方案,可基于 Amazon Cognito 属性验证策略并使用 Amazon Cognito 令牌授权请求。
2023/12/12Amazon Cognito 身份池现在支持自定义访问令牌内容的功能。能够添加、修改和删除用户池访问令牌的声明和范围。
2023/12/19Amazon Cognito 用户池现在可以使用 AWS Service Quotas 来管理常用于创建和检索身份以及管理身份池标签的操作的配额。
2024/02/01您现在可以使用 Amazon Cognito 发送签名的 SAML 身份验证请求、请求来自 SAML 身份提供商的加密响应,以及使用身份提供商发起的单点登录 (SSO) 进行 SAML 联合。
2024/04/05只有 Amazon Cognito 组中获得 Amazon 验证权限授权的用户才能访问您的应用程序的 API。
2024/05/21现在,在使用 Amazon 验证权限使用 Cognito 令牌进行身份验证时,您可以根据 Cognito 组成员身份创建 Cedar 策略。
2024/05/30Amazon Cognito 用户池扩展了其访问令牌自定义功能,以支持 ID 和访问令牌中的复杂自定义属性,例如数组、地图和 JSON 对象。

目前Amazon Cognito的功能列表及概述

接下来将详细介绍Amazon Cognito当前的主要功能。Amazon Cognito是一项全托管的认证服务,旨在帮助移动和Web应用程序开发者轻松实现用户认证和数据同步。

Amazon Cognito主要提供两项功能:

  1. User Pools(用户池):

    • 用户认证管理: User Pools提供用户目录管理功能,支持用户的注册和登录,实现应用程序所需的认证框架的简单集成。
    • JWT令牌发放: 通过User Pools,认证成功后可以生成JWT令牌,这些令牌可以在应用程序内部用于授权。
  2. Identity Pools(身份池):

    • 临时AWS凭证: Identity Pools为已认证和未认证的用户提供临时的AWS凭证,允许这些用户访问AWS资源,从而实现AWS环境中的授权管理。

在认证方面,通常使用User Pools来验证用户身份。在授权方面,应用程序内使用由User Pools发放的令牌来管理用户权限,而对于访问AWS资源的权限控制,则通过Identity Pools来实现。

通过结合使用User Pools和Identity Pools,应用程序开发者能够有效管理用户的认证信息和访问权限。

此外,Amazon Cognito支持与其他AWS服务的无缝集成,并支持跨设备的用户数据同步,从而提升用户体验。结合使用AWS IAM进行访问控制,开发者可以在保持开发灵活性的同时,强化安全性,确保应用程序的安全运行。

Amazon Cognito的使用案例

Amazon Cognito通过安全管理认证和授权,使应用程序开发者能够简化用户信息的处理。以下是利用Amazon Cognito的主要组件User Pools和Identity Pools的一些典型使用案例。

用户认证

使用User Pools在移动应用和Web应用中提供安全的用户注册和登录功能。还支持通过社交ID提供商(如Facebook、Google、Amazon、Apple)或OIDC、SAML进行联合认证。

用户授权和资源访问管理

使用Identity Pools为已认证和未认证的用户提供对AWS资源的临时访问权限。利用User Pools的组功能在应用程序内进行权限管理。

服务器端资源的访问控制

使用User Pools发放的令牌来控制对服务器端资源的访问。

通过API Gateway和Lambda进行资源访问

在API Gateway中验证User Pools的令牌,并控制对Lambda函数和自定义API的访问。

访问AWS服务

结合使用User Pools和Identity Pools,为已认证的用户提供对AWS服务的临时访问权限。

第三方认证和AWS服务访问

使用Identity Pools允许通过第三方ID提供商认证的用户访问AWS服务。

访问AWS AppSync资源

使用User Pools的令牌控制对AWS AppSync资源的访问。通过Identity Pools获取的IAM认证信息向AWS AppSync GraphQL API发送请求。

应用程序间的用户数据同步

利用User Pools的功能在用户的设备间同步设置信息和应用状态。

具体使用案例

  1. 社交媒体集成登录 提供在Web和移动应用中使用Facebook或Google等社交账户登录的功能,由User Pools处理认证。

  2. 移动应用的自定义认证流程 在移动应用中实现使用一次性密码(OTP)或生物识别技术的安全登录流程,User Pools支持这些认证方法。

  3. 无服务器后端的访问授权 当应用程序访问Amazon S3或DynamoDB等AWS服务时,使用Identity Pools发放临时AWS凭证,确保只有经过认证的用户才能访问资源。

  4. 微服务架构中的认证 在使用API Gateway和Lambda的微服务架构中,使用User Pools的令牌来控制对各个服务的访问。

  5. 基于用户组的访问控制 使用User Pools的组功能在应用程序中创建具有不同权限级别的用户组(如管理员、普通用户),并为每个组分配适当的访问权限。

  6. 跨平台应用中的一致用户体验 使用User Pools在Web、iOS、Android等不同平台之间同步用户配置文件和认证状态,提供一致的用户体验。

  7. 基于GraphQL的应用开发 在使用AWS AppSync的GraphQL应用中,结合使用User Pools和Identity Pools来控制数据访问。

这些使用案例展示了Amazon Cognito如何在各种场景下高效、安全地进行用户认证和授权,加速应用程序的开发。

Amazon Cognito的概念图

接下来将介绍Amazon Cognito的主要功能和特点,但在此之前,为了便于理解Amazon Cognito的整体结构,下面展示一张Amazon Cognito的概念图。

这张概念图展示了使用Amazon Cognito的主要功能——User Pools和Identity Pools的典型认证流程。

认证过程由以下三个主要步骤组成:

  1. 用户首先通过Amazon Cognito User Pools进行认证,并获取令牌。
  2. 接着,用户使用这个令牌与Amazon Cognito Identity Pools进行交换,从而获得临时的AWS认证信息。
  3. 最后,应用程序使用这些认证信息访问AWS的各种服务和资源。

正如这张概念图所示,虽然Amazon Cognito User Pools和Amazon Cognito Identity Pools同属于Amazon Cognito服务,但它们分别提供不同的角色和用途。

接下来将主要介绍Amazon Cognito User Pools和Amazon Cognito Identity Pools的各自功能概述。

Amazon Cognito User Pools

Amazon Cognito User Pools的功能概述

Amazon Cognito User Pools是一项全面的服务,用于管理Web和移动应用的用户认证。它作为一个独立的用户目录,支持自我注册和管理员主导的用户创建、管理和认证。User Pools基于OpenID Connect (OIDC)标准运行,生成JSON Web Token (JWT)——一种用于安全信息传输的紧凑、自包含的签名JSON对象,直接为应用程序和API提供认证。

User Pools的一个显著功能是与第三方身份提供商(IdP)的高级集成。它支持通过SAML 2.0、OIDC和OAuth 2.0协议,与企业工作标识符、客户标识符以及Facebook、Google、Amazon、Apple等常见的社交身份提供商进行集成。在这种集成中,属性映射功能起到了关键作用。用户可以将外部IdP的用户属性灵活映射到User Pool中的属性,确保数据的一致性和兼容性。

此外,User Pools还提供将联合用户链接到现有用户档案的功能。通过这一功能,用户可以将多种认证方法(如本地账户和Facebook账户)关联到同一用户档案,从而实现无缝的用户体验。

在安全性方面,User Pools提供了多因素认证 (MFA)、自定义认证流程以及防止恶意活动等高级功能。用户体验的自定义也非常灵活,开发者可以使用Lambda函数自定义认证流程,或定制托管UI的设计。

监控和分析功能也非常全面,通过与AWS CloudTrail、Amazon CloudWatch和Amazon Pinpoint的集成,可以对用户活动进行详细的分析和监控。此外,User Pools与Amazon Cognito Identity Pools的集成,还简化了AWS服务访问权限的管理。

综合来看,Amazon Cognito User Pools是一款兼具灵活性和强大安全功能的工具,能够应对复杂的认证场景,是现代应用程序开发中不可或缺的一部分。通过属性映射和用户档案链接功能,不同身份提供商之间的用户信息整合和管理变得更加容易,从而提供无缝的用户体验。

Amazon Cognito User Pools的登录方法

Amazon Cognito User Pools为Web和移动应用程序的认证和授权提供了灵活而强大的解决方案。用户可以通过多种方式访问其应用程序,开发者可以根据具体需求和现有基础设施选择合适的方式。以下是Amazon Cognito User Pools提供的主要登录方法的概述。

  1. 通过用户池直接登录 Amazon Cognito User Pools支持直接登录,作为独立的用户目录和身份提供商 (IdP) 运行。用户可以使用Amazon Cognito托管的UI (Hosted UI) 或通过Amazon Cognito User Pools API从自定义UI进行登录。

  2. 通过社交IdP进行联合认证 Amazon Cognito User Pools支持OAuth 2.0社交登录,用户可以通过Google、Facebook、Amazon、Apple等社交身份提供商进行登录。通过社交IdP的联合认证,可以让消费者用户登录,同时将这些用户的基本属性(如姓名、电子邮件地址、头像URL)导入到Amazon Cognito User Pools中。这些属性根据设定的映射规则存储在User Pools中的用户档案中。

  3. 通过SAML IdP进行联合认证 Amazon Cognito User Pools也支持SAML (Security Assertion Markup Language) 联合认证。Amazon Cognito User Pools可以配置为接受来自任何SAML IdP的请求。通过SAML IdP的联合认证,适用于使用组织用户数据进行登录和导入,便于与现有组织的身份系统集成。通过SAML认证,用户的属性和角色等信息可以安全地传输到Amazon Cognito User Pools,并用于应用程序中的认证。

  4. 通过OIDC IdP进行联合认证 Amazon Cognito User Pools还支持通过OpenID Connect (OIDC) 协议的IdP进行联合认证。Amazon Cognito可以处理来自任何符合OIDC标准的IdP的请求。通过OIDC IdP的联合认证,可以与各种标准兼容的身份提供商进行集成。

通过结合使用这些方法,开发者可以为用户提供灵活的认证选项,并与现有身份基础设施无缝集成。

托管UI (Hosted UI)

Amazon Cognito User Pools的托管UI (Hosted UI) 是一个可即刻使用的用户认证Web界面。它作为一个符合OAuth 2.0标准的认证服务器,具有以下特点:

  • 提供基本的注册、登录、多因素认证 (MFA)、密码重置等功能。
  • 作为集成第三方身份提供商 (IdP) 认证的枢纽。
  • 支持自定义,可以通过设置Logo和CSS来打造符合品牌形象的外观。
  • 提供认证请求路由、JWT的生成与管理、用户属性信息的传输等功能。

托管UI的主要优势在于它易于与应用程序集成。开发者可以使用用户池域名、应用客户端ID、重定向URI等参数访问认证端点。例如,可以通过类似如下的URL访问托管UI。

https://<your user pool domain>/authorize?client_id=<your app client ID>&response_type=<code/token>&scope=<scopes to request>&redirect_uri=<your callback URL>

托管UI的功能使开发者能够轻松实现认证流程,并为用户提供简便的认证体验。通过使用Amazon Cognito User Pools的托管UI,开发者无需自行构建复杂的认证系统,即可快速实现安全且标准化的认证流程。

Lambda触发器的种类

在Amazon Cognito User Pools中,开发者可以使用Lambda触发器在用户认证流程的各个阶段执行自定义逻辑,从而定制认证流程。以下是Lambda触发器可执行的一些主要操作:

  • 与注册相关:

    • Pre sign-up: 在用户注册之前执行自定义验证或其他预处理。还可以用于批准或拒绝用户注册请求。
    • Post confirmation: 在用户注册确认(例如通过电子邮件或短信认证)后执行操作,如发送自定义消息或记录日志。
  • 与认证相关:

    • Pre authentication: 在用户认证前执行自定义验证。可以根据特定条件拒绝用户登录。
    • Post authentication: 用户成功认证后执行操作,如记录日志或收集分析数据。
  • 与自定义认证挑战相关:

    • Define auth challenge: 决定认证过程中下一个挑战(认证步骤)。
    • Create auth challenge: 创建新的认证挑战。
    • Verify auth challenge response: 验证用户的响应,决定认证的成功或失败。
  • 与令牌生成相关:

    • Pre token generation: 在生成ID令牌或访问令牌之前,可以更改或添加令牌声明。
  • 与用户迁移相关:

    • Migrate user: 帮助从现有的用户目录向Amazon Cognito User Pools迁移用户信息。当用户首次登录时,从旧系统中迁移信息。
  • 与消息自定义相关:

    • Custom message: 自定义通过电子邮件或短信发送的消息内容,也支持语言本地化。
  • 与自定义发送者相关:

    • Custom email sender: 使用第三方提供商自定义并发送电子邮件。
    • Custom SMS sender: 使用第三方提供商自定义并发送短信消息。
Amazon Pinpoint分析

Amazon Pinpoint是一个多渠道营销平台,帮助提高用户参与度并开展有针对性的活动。Amazon Pinpoint活动功能允许向特定用户群体发送特定消息或促销。

Amazon Cognito User Pools与Amazon Pinpoint集成,提供用户池的分析功能,并增强Amazon Pinpoint活动的用户数据。通过这种集成,可以实现以下功能:

  • 跟踪用户池的注册、登录、认证失败、每日活跃用户(DAU)和每月活跃用户(MAU)等信息。
  • 基于设备平台、设备语言设置、应用版本等属性进行数据分析。
  • 设置自定义属性并利用这些属性进行用户细分。
  • 发送有针对性的推送通知。

在Amazon Cognito控制台中启用分析后,会创建一个链接的角色,Amazon Cognito将使用该角色向Amazon Pinpoint发出API请求。需要注意的是,Amazon Cognito与Amazon Pinpoint的区域可用性有限,在某些地区可能需要在相同区域或us-east-1(N. Virginia)创建Amazon Pinpoint项目。

可以使用Amazon Cognito控制台、AWS CLI或AWS API指定分析设置。设置完成后,通过在应用程序中包含AnalyticsMetadata参数,向Amazon Pinpoint传递元数据。

通过Amazon Cognito User Pools与Amazon Pinpoint的集成,可以提高移动应用的用户参与度,实现更有效的定位和分析。

用户管理

使用Amazon Cognito User Pools,可以在创建用户池后进行用户账户的创建、确认和管理。通过使用用户池中的组功能,可以将IAM角色映射到组,并管理用户及其对资源的访问。

此外,还可以使用Migrate user Lambda触发器将用户导入到用户池中。通过这种方式,当用户首次登录用户池时,可以实现现有用户目录向用户池的无缝迁移。

创建用户池后,可以利用以下功能高效管理用户:

  • 组管理: 在用户池中创建组并映射IAM角色,以管理用户的访问权限。
  • 用户迁移: 使用Migrate user Lambda触发器,从现有的用户目录无缝迁移用户信息,用户首次登录时自动完成迁移。
  • 策略设置: 设置与用户创建相关的策略,增强安全性。
  • 账户管理: 管理员可以创建用户账户,或搜索和管理现有账户。
  • 账户恢复: 提供账户恢复功能,以防用户忘记密码等情况。
  • 属性管理: 灵活设置用户池中的属性,管理所需信息。
  • 密码要求: 增加用户池的密码要求,增强安全性。

通过这些功能,可以在使用Amazon Cognito User Pools的应用程序中实现有效的用户管理。

认证成功后的AWS资源访问

如前所述,使用Amazon Cognito User Pools,用户可以直接使用用户池或通过第三方身份提供商(IdP)进行认证。认证成功后,应用程序会从Amazon Cognito接收用户池令牌。利用这些令牌,可以执行以下操作:

  • 获取访问AWS服务(如DynamoDB和S3等)的AWS认证信息。
  • 提供临时且可撤销的认证证明。
  • 在应用程序中将身份数据插入用户档案。
  • 授权修改用户池目录中已登录用户的档案。
  • 使用访问令牌授权对用户信息的请求。
  • 使用访问令牌授权对外部API的请求。
  • 使用Amazon Verified Permissions授权对客户端或服务器上的应用程序资产的访问。

这些功能使得用户认证和资源访问管理既安全又灵活。

可用的安全功能

为了保护用户身份,Amazon Cognito User Pools提供了多种安全功能,主要包括以下内容:

  • 多因素认证 (MFA): 添加除用户名和密码之外的第二个认证因素。可使用SMS文本消息或基于时间的一次性密码 (TOTP)。
  • 自适应认证 (Adaptive Authentication): 自适应认证通过分析用户行为模式和风险因素,根据情况动态调整认证级别。这种安全功能使用基于风险的模型来预测是否需要额外的认证因素。作为“Amazon Cognito Advanced Security”的一部分提供,需额外付费。
  • 泄露凭证保护: 通过与已知的泄露密码数据库进行比对,防止用户使用脆弱的密码。这一功能也是“Amazon Cognito Advanced Security”的一部分,需额外付费。
  • 与AWS WAF Web ACL的集成: 可以将用户池与AWS WAF Web ACL相关联。
  • 用户池的大小写敏感性管理: 可以管理用户名及其他属性的大小写处理。
  • 用户池删除保护: 防止意外删除用户池。
  • 用户存在错误响应的管理: 可以自定义有关用户存在的错误响应。

通过适当组合这些功能,可以增强用户池的安全性,构建更为安全的认证系统。

Amazon Cognito Identity Pools

Amazon Cognito Identity Pools的功能概述

Amazon Cognito Identity Pools是一项服务,用于为已认证用户和未认证用户提供对AWS资源的临时访问权限。Identity Pools不仅为已认证用户,还为匿名用户提供AWS认证信息,使应用程序能够根据需要为用户提供适当的资源访问权限。

Identity Pools的一个重要功能是能够将未认证用户顺利转换为已认证用户。用户可以从受限的访客访问开始,然后通过认证流程获取更广泛的访问权限。这种灵活性帮助应用程序在获取新用户和提升用户参与度方面取得平衡。

此外,Identity Pools可以与多种认证提供商集成,包括用户池、SAML 2.0服务、OIDC提供商、社交ID提供商(如Amazon、Facebook、Google、Apple、Twitter等),并且支持自定义认证方案,这使得开发者可以选择最适合其需求的认证方法。

Identity Pools的一个关键特点是可以结合使用基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC)。RBAC允许根据用户的请求和属性选择适当的IAM角色,并为每个角色应用细致调整的IAM策略。而ABAC则通过从用户请求中提取属性,将其映射到临时会话的主体标签,从而更精细地控制对资源的访问。

通过设置Amazon Cognito认证信息提供商并获取AWS认证信息,开发者可以使用这些认证信息来创建AWS服务客户端,使应用程序能够与Amazon S3、Amazon DynamoDB、Amazon Pinpoint、Amazon CloudWatch等各种AWS服务进行安全交互。这一功能使开发者能够充分利用AWS丰富的服务生态系统,构建可扩展且强大的应用程序。

总体而言,Amazon Cognito Identity Pools提供了一种全面且灵活的认证和授权解决方案,从用户认证到AWS资源访问管理,帮助开发者在不牺牲安全性的前提下,提供无缝的用户体验。

基于角色的访问控制(Role-Based Access Control, RBAC)

Amazon Cognito Identity Pools为已认证用户分配具有临时、有限权限的认证信息,以便他们访问AWS资源。每个用户的权限由创建的IAM角色控制。

可以基于用户ID令牌中的声明,为每个用户定义应用的角色规则,也可以为已认证用户定义默认角色。对于未认证的访客用户,还可以定义另一个具有有限权限的IAM角色。

在为角色映射创建角色时,需要为每个角色添加适当的信任策略,以确保这些角色仅由Identity Pool内的已认证用户承担。

用户分配角色的主要方法有两种:

  1. 使用令牌分配角色:

    • 对于通过用户池登录的用户,可以使用ID令牌中的特定声明(如cognito, cognito)分配角色。
  2. 基于规则的映射分配角色:

    • 可以设置规则,将ID提供商令牌的声明映射到IAM角色。每条规则指定令牌声明、匹配类型、值和IAM角色。最多可以创建25条规则,按顺序评估,使用首先匹配的规则对应的IAM角色。

作为安全的最佳实践,重要的是仅将用户无法直接设置的声明映射到具有高权限的角色。此外,还应指定无法确定适当角色时的默认行为。

基于属性的访问控制(Attribute-Based Access Control, ABAC)

Amazon Cognito Identity Pools中的基于属性的访问控制(ABAC)功能基于用户属性控制对AWS资源的访问。使用此功能,可以将从社交或企业认证提供商获取的用户属性映射到IAM策略中可引用的标签。

ABAC的主要特点和优势包括:

  • 高效的权限管理: 通过使用用户属性,只需创建一个基本的权限策略,而不是为每个资源单独创建多个策略。
  • 灵活的策略: 当添加或删除资源和用户时,无需更新策略。策略只允许具有匹配用户属性的用户访问。
  • 属性映射: 可以选择默认映射或创建自定义映射,设置在IAM权限策略中引用的属性。
  • 条件访问: 基于用户属性值,有条件地允许或拒绝对特定资源的访问。

作为安全的最佳实践,应使用来自可信来源的属性,并确保重要权限的决策基于用户无法自由更改的属性。此外,建议定义当属性值未知或不存在时的默认行为,并按照最小权限原则控制访问权限。还需适当地配置IAM角色的信任策略,以便将主体标签应用于用户会话,并定期审查属性与策略的关系,确保没有授予不必要的权限。

获取AWS资源的认证信息

使用Amazon Cognito Identity Pools,可以为应用程序提供对AWS资源的临时、有限权限认证信息。认证信息的获取过程涉及以下关键点:

  • 已认证与未认证身份:

    • 未认证用户:适用于未经过身份验证的访客用户,允许他们访问应用程序。
    • 已认证用户:通过第三方ID提供商或用户池登录,身份已验证。
  • Amazon Cognito身份:

    • 身份本身并非认证信息。通过AWS Security Token Service(STS)的Web ID联合支持交换为认证信息。
  • 推荐的认证信息获取方法:

    • 建议通过AWS.CognitoIdentityCredentials对象从Amazon Cognito Identity Pools获取AWS认证信息。该认证信息对象中的身份通过AWS STS交换为认证信息。
  • 使用SDK和AWS Amplify的集成:

    • AWS SDK内置了自动发现和使用认证信息的机制(认证信息提供商链),Web ID认证信息提供商(包括Identity Pools)是该链的一部分。使用SDK时,无需额外配置即可方便地利用Identity Pools的认证信息。
    • AWS Amplify中集成了Identity Pools功能,大大简化了认证和用户管理的实现,缩短了开发时间,并实现更强大的安全性。

通过这些要点,开发者可以在应用程序中实现安全高效的认证系统。

开发者认证ID(Developer-Authenticated Identities)

开发者认证ID是Amazon Cognito Identity Pools提供的一种认证方式。通过此功能,开发者可以使用现有的认证流程注册和认证用户,同时利用Amazon Cognito Identity Pools同步用户数据并访问AWS资源。然而,该功能需与Amazon Cognito Identity Pools结合使用,且不支持Amazon Cognito User Pools。

开发者认证ID的主要特点包括:

  • 自定义认证: 开发者可以使用自定义的认证系统。
  • 与后端集成: 实现用户设备、开发者后端与Amazon Cognito Identity Pools三者之间的集成。
  • 灵活性: 可与Web ID联合(如Facebook、Google、Amazon、Apple等)一起使用,但实现复杂度可能增加。
  • 安全性: 通过在后端服务器上使用GetOpenIdTokenForDeveloperIdentity API进行认证,不建议直接在客户端调用。
  • 实现: 提供了适用于Android、iOS、JavaScript、Unity、Xamarin等平台的SDK实现方法。
  • ID池关联: 将开发者提供商名称与ID池关联使用。
  • 令牌管理: 需要在后端获取令牌并返回给客户端,还需考虑令牌的有效期管理和更新机制。

使用开发者认证ID的认证流程如下:

  1. 应用程序通过自定义后端进行认证。
  2. 后端调用Amazon Cognito Identity Pools的GetOpenIdTokenForDeveloperIdentity API获取ID令牌。
  3. 后端将ID令牌返回给应用程序。
  4. 应用程序使用此令牌获取AWS认证信息。

此外,还需要考虑错误处理和令牌更新流程。

要使用开发者认证ID,需要执行以下步骤:

  1. 在Amazon Cognito Identity Pools控制台中,将开发者提供商名称与身份池关联。
  2. 在身份池中设置适当的IAM角色和策略。
  3. 在应用程序中实现自定义ID提供商类。
  4. 在后端调用GetOpenIdTokenForDeveloperIdentity API以获取和管理ID令牌。

通过使用开发者认证ID,开发者可以在现有认证系统的基础上,利用Amazon Cognito Identity Pools的功能,实现灵活的用户管理和AWS资源访问控制。

外部身份提供商

Amazon Cognito Identity Pools支持与多个外部身份提供商(IdP)集成,用户可以通过多种方式进行认证。

在Amazon Cognito Identity Pools中,通过使用logins属性设置外部IdP的认证信息。一个身份池可以与多个IdP关联,例如,可以将Facebook和Google的令牌都设置在logins属性中,从而将一个Amazon Cognito身份与多个IdP登录关联。这使得用户可以通过任一账户进行认证,Amazon Cognito返回相同的用户标识符。

Amazon Cognito Identity Pools支持的主要外部IdP包括:

  • Facebook
  • Login with Amazon
  • Google
  • Sign in with Apple
  • OpenID Connect(OIDC)提供商
  • SAML 提供商

利用这些外部IdP,开发者可以为应用程序实现灵活且强大的认证功能。

安全最佳实践

为了增强Amazon Cognito Identity Pools的安全性,以下是一些重要的最佳实践:

  • 最小权限原则: 使用IAM角色和策略,只授予用户必要的最小权限。
  • 资源级策略的使用: 通过使用资源级策略,对用户的资源访问进行细致控制。
  • 会话标签的使用: 将用户声明转换为IAM会话标签,实现基于用户特性的访问控制。
  • 限制访客访问: 为未认证用户配置有限范围的AWS认证信息。
  • 基于用户特性的IAM角色分配: 基于用户声明为已认证用户分配适当的IAM角色。
  • 选择适当的认证提供商: 选择适合使用场景的可信认证提供商,并适当配置。
  • 正确实现自定义认证: 如果使用开发者认证ID,需实现健全的认证机制,并进行适当验证。
  • 定期审计和监控: 利用Amazon CloudWatch等服务,定期审计和监控用户活动。

通过应用这些最佳实践,可以显著提高Amazon Cognito Identity Pools的安全性,保护应用程序和用户数据。

User Pools与Identity Pools的区别与比较

Amazon Cognito的User Pools和Identity Pools是两个具有不同目的和功能的重要组件。

User Pools 主要专注于用户认证和管理,作为Web和移动应用程序的用户目录。它提供了创建本地用户、通过第三方身份提供商(IdP)进行联合认证、多因素认证(MFA)以及自定义认证流程等功能。

Identity Pools 则主要聚焦于AWS资源的访问控制,为已认证用户和未认证用户发放临时的AWS认证信息。通过角色基础的访问控制(RBAC)或属性基础的访问控制(ABAC),Identity Pools可以实现对AWS资源的精细访问管理。

将这两者结合使用,可以实现安全且灵活的用户认证和AWS资源的访问控制。例如,可以使用User Pools认证的用户令牌在Identity Pools中获取适当的AWS认证信息。

在AWS文档的页面中,有关于Amazon Cognito以及User Pools和Identity Pools功能的比较表。

总结来说,User Pools和Identity Pools的主要区别和特点如下:

 项目Amazon Cognito 用户池Amazon Cognito 身份池
 认证与授权我们主要专注于用户身份验证(OIDC IdP、SAML 2.0、OAuth 2.0等)和API授权。它专注于颁发临时 AWS 凭证。
 代币管理颁发和定制 ID 令牌和访问令牌。与 AWS STS 配合管理临时凭证。
 用户管理提供用户注册、认证、属性管理、MFA、安全监控等功能。 它不直接提供这些功能。
 访问控制您可以通过组功能创建 IAM 角色请求的层次结构。提供基于角色和基于属性的访问控制,允许对 AWS 资源进行细粒度的访问管理。
 未经身份验证的访问 它没有这个功能。您还可以向未经身份验证的用户提供有限的访问权限。
 定制提供定制功能。这适用于身份验证流程、用户属性和 ID 令牌。提供定制功能。它侧重于访问控制。

AWS AppSync 与 Amazon Cognito Sync

在云端移动和网页应用开发中,数据同步与管理的主要AWS服务包括AWS AppSync和Amazon Cognito Sync。总结来说,目前Amazon Cognito Sync已被弃用(deprecated),推荐使用AWS AppSync。以下将解释这些服务的特点、差异以及当前推荐使用AWS AppSync的原因。

主要区别
  • AWS AppSync 是一种使用GraphQL来管理应用数据的全托管服务。它可以处理复杂的数据结构,并支持实时数据同步。
  • Amazon Cognito Sync 是一种用于在设备之间同步用户数据的简单服务。它通过键值对的形式保存和同步数据。

从不同的角度来看,两者的主要区别如下。

 项目 AWS 应用程序同步 亚马逊 Cognito 同步
 数据模型使用 GraphQL 处理复杂的数据结构和关系。仅限于简单的键值对数据模型。
 可扩展性它可以处理大规模应用程序并提供高可扩展性。它适用于中小型应用。
 实时功能支持使用WebSockets的实时数据更新。 实时更新能力有限。
 统合性可以与各种AWS服务集成(DynamoDB、Aurora、Elasticsearch等)。它主要与 Cognito 身份池紧密集成。
 开发者经验提供更丰富的开发工具以及与 AWS Amplify 的集成。它有一个简单的API,适合基本的数据同步任务。

当前的推荐事项及其原因

AWS目前强烈建议在新应用程序开发中使用AWS AppSync。同时,Amazon Cognito Sync已被弃用(deprecated),不再推荐用于新项目。

这一推荐背后的原因包括:
  1. AWS AppSync的卓越灵活性与可扩展性:AWS AppSync能够更好地处理复杂的数据结构和应用程序需求,具有高度的可扩展性,适合现代应用的开发。

  2. 适应现代应用开发需求:AppSync与现代开发趋势高度契合,特别是在实时数据同步和动态数据管理方面。

  3. 更强大的安全功能和精细的访问控制:AppSync提供了更强的安全措施和更加细致的访问控制机制,保障数据安全。

  4. GraphQL的普及及高效数据获取需求的增加:随着GraphQL的广泛应用,开发者对高效数据查询的需求也在增加,AppSync完美契合这一趋势。

  5. 与Amazon DynamoDB的结合:通过将AWS AppSync与Amazon DynamoDB结合使用,可以实现更具整合性的云原生方法,从而提升可扩展性和性能。

因此,对于仍在使用Cognito Sync的现有项目,建议考虑在未来迁移到AppSync,以获得更好的性能和支持。

AWS服务集成

Amazon Cognito通过与各种AWS服务的集成,提供了更强大且灵活的认证和授权解决方案。以下将详细介绍三种主要的集成方式。这些集成方式使开发者能够构建最适合其应用需求的认证和授权系统。

与AWS Amplify的集成

Amazon Cognito User Pools可以通过AWS Amplify轻松集成到Web应用和移动应用中。Amplify Auth主要使用Amazon Cognito来构建认证功能。开发者可以使用Amplify CLI创建和配置资源,并使用Amplify库实现登录、注册等功能。此外,使用Amplify的Authenticator组件,可以轻松构建可自定义的认证UI。

通过与AWS Amplify的集成,开发者可以最大限度地利用User Pools的功能,同时快速实现安全的认证系统。

与AWS SDK的集成

Amazon Cognito User Pools和Amazon Cognito Identity Pools均可通过AWS SDK进行集成。后端开发者可以使用所选编程语言的SDK直接与Amazon Cognito API交互,构建自定义认证微服务。使用User Pools API控制用户管理和认证流程,使用Identity Pools API管理对AWS资源的访问权限。

通过与AWS SDK的集成,开发者可以实现更细致的控制和更高的灵活性,从而构建完善的认证和授权系统。

与Amazon Verified Permissions的集成

Amazon Cognito User Pools可以与Amazon Verified Permissions集成,实现高级授权功能。应用程序可以将User Pools发放的访问令牌或ID令牌传递给Verified Permissions,以获得详细的授权决策。Amazon Verified Permissions基于Cedar Policy Language编写的策略,考虑用户属性和请求上下文,做出允许或拒绝的决策。

此外,Amazon Verified Permissions的核心功能——策略存储库(Policy Store),是用于集中管理授权策略的存储库。设置策略存储库时,可以选择处理的令牌类型(访问令牌或ID令牌),并将Amazon Cognito User Pools设置为身份源。通过使用策略存储库,可以在策略中层次化引用用户、组、操作和资源,从而定义精细的授权规则。

这种集成使得Amazon Cognito User Pools的认证功能与Amazon Verified Permissions的灵活授权功能结合,实现了细致的访问控制。特别是与Amazon API Gateway结合使用时,可以构建针对RESTful API的强大授权机制。

总结Amazon Cognito User Pools与Amazon Verified Permissions集成后的认证和授权流程及其优点如下:

Amazon Cognito User Pools的认证流程
  • 用户通过Amazon Cognito User Pools进行认证。
  • 认证成功后,User Pools会发放访问令牌或ID令牌。
  • 应用程序将此令牌传递给Verified Permissions,要求进行授权判断。
Amazon Verified Permissions的授权流程
  • Amazon Verified Permissions验证接收到的令牌。
  • 检查令牌的有效性、发行者和有效期。
  • 确认User Pools是Amazon Verified Permissions中已配置的身份源。
  • 提取令牌中的信息(声明)并将其用作策略评估的输入。
  • 根据Cedar Policy Language编写的策略做出授权判断,考虑以下因素:
    • 用户属性(如组成员、自定义属性等)
    • 请求的上下文(如资源标识符、操作类型等)
    • 其他自定义上下文信息
  • 返回允许(Allow)或拒绝(Deny)的决策。
令牌失效和已删除用户的处理

Verified Permissions仅验证从身份源获取的信息和用户令牌的有效期,不确认令牌的失效状态或用户的删除状态。因此,即使令牌失效或用户从用户池中被删除,令牌在有效期内仍被视为有效。

Amazon Cognito User Pools与Amazon Verified Permissions集成的优势
  • 精细的访问控制:可以基于用户属性、组成员身份和请求上下文定义详细的授权规则。
  • 灵活的策略管理:使用Cedar Policy Language表达复杂的授权逻辑。
  • 集中式授权:在整个应用程序中应用一致的授权规则。
  • 可扩展性:利用Amazon Verified Permissions的托管服务,在大型应用中高效处理授权。
  • RBAC与ABAC的结合:使用ID令牌结合基于角色的访问控制(RBAC)和基于属性的访问控制(ABAC),根据用户属性和组成员身份做出更细致的授权判断。
在Amazon API Gateway中使用Amazon Cognito User Pools与Amazon Verified Permissions的认证和授权流程及其优势

当在Amazon API Gateway中使用Amazon Cognito User Pools进行认证,并使用Amazon Verified Permissions进行授权时,其流程及优势如下:

使用Amazon API Gateway进行认证和授权时的流程

用户认证(通过Amazon Cognito User Pools)
  • 用户通过Amazon Cognito或其他OIDC身份提供商(IdP)进行认证。
  • IdP会发放包含用户信息的ID令牌和访问令牌(JWT)。
API请求
  • 客户端在向Amazon API Gateway发送请求时,会将JWT包含在Authorization头部中。
Amazon API Gateway的处理
  • 如果API Gateway有缓存的授权决策,则会使用缓存结果。
  • 如果没有缓存或缓存无效,API Gateway会调用Lambda授权程序。
Lambda授权程序的处理
  • AWS Lambda函数使用IsAuthorizedWithToken API向Amazon Verified Permissions发送授权请求。
  • 请求中包括用户令牌(主体)、API方法和路径(操作)、应用程序(资源)等信息。
授权判断(通过Amazon Verified Permissions)
  • Amazon Verified Permissions验证令牌,并基于策略存储库中的Cedar Policy Language编写的策略进行授权判断。
  • 它会考虑用户属性、请求上下文和其他信息,返回允许(Allow)或拒绝(Deny)的决定。
Lambda授权程序的响应
  • Lambda授权程序根据Verified Permissions的授权结果,向API Gateway返回允许(Allow)或拒绝(Deny)的响应。
Amazon API Gateway的最终处理
  • API Gateway根据Lambda授权程序的结果,返回数据或返回ACCESS_DENIED响应。

使用Amazon API Gateway进行认证和授权的优点

  1. 安全认证:

    • 利用Amazon Cognito User Pools强大的认证机制,支持多因素认证和与社交ID提供商的集成。
  2. 细致的授权控制:

    • 使用Amazon Verified Permissions定义详细的授权规则,基于用户属性、组成员身份和请求上下文进行授权。
  3. 灵活的策略管理:

    • 通过Cedar Policy Language表达复杂的授权逻辑,实现策略的集中管理,并应用一致的授权规则。
  4. 可扩展性和性能:

    • API Gateway、Cognito和Verified Permissions均为托管服务,提供高可扩展性。使用Lambda授权程序可定制认证和授权逻辑。
  5. 提高安全性:

    • 通过将认证与授权分离,实现更安全的架构。基于令牌的认证支持无状态且安全的通信。
  6. 提高开发效率:

    • 将认证和授权逻辑从应用代码中分离出来,使用托管服务,开发者可以专注于核心业务逻辑。

通过将Amazon Cognito User Pools与Amazon Verified Permissions集成,以及在Amazon API Gateway中使用,可以将强大的认证功能与灵活的授权功能相结合,实现安全且易于管理的访问控制。

Amazon Cognito Identity Pools和Amazon Verified Permissions的角色与用途的区别

Amazon Cognito Identity Pools和Amazon Verified Permissions都是在通过Amazon Cognito User Pools认证后提供授权功能的解决方案。然而,它们在角色和用途上有以下不同之处:

 项目Amazon Cognito 身份池亚马逊验证权限
 主要角色 授予对 AWS 服务的临时访问权限 细粒度的应用级授权
特徴
  •  为用户提供临时 AWS 凭证
  • 使用 IAM 角色控制对 AWS 资源的访问
  • 当直接从移动或 Web 应用程序访问 AWS 服务时非常有用
  •  定义和管理特定于应用程序的授权规则
  • 使用Cedar语言可以编写灵活的授权策略
  •  提供实时授权决策
  • 实现与应用业务逻辑密切相关的授权
使用例例如,直接从移动应用程序访问 S3 存储桶时。组织结构复杂的应用程序、需要动态访问控制等情况下的权限管理。
 范围 主要关注访问AWS服务 专注于特定于应用程序的授权
粒度 IAM基于角色的相对粗粒度的控制 允许更精细的粒度控制
 控制灵活性 由 IAM 策略控制可以使用Cedar语言定义更复杂和动态的授权规则

选择哪种方案取决于具体的使用场景和需求,有时可以结合使用两者。

因此,如果主要目的是访问控制AWS服务,那么选择Amazon Cognito Identity Pools更为合适;而如果应用程序需要复杂的特定授权逻辑,则应该选择Amazon Verified Permissions。

参考资料

总结

本次我们创建了Amazon Cognito的历史年表,并查看了Amazon Cognito的功能列表和概述。

自2014年推出以来,Amazon Cognito持续为应用程序开发者提供便利的安全功能,简化了用户认证和授权的复杂性。User Pools通过简化注册和登录流程,并提供多样化的认证选项,为最终用户提供了便捷的认证体验。另一方面,Identity Pools为已认证和未认证用户提供临时的AWS凭证,授权他们安全访问AWS资源。

在过去的十年里,Amazon Cognito进行了许多重要的更新,包括支持社交登录、管理用户目录、同步应用数据、强化安全性等功能,逐步扩大了其能力。尤其是在最近的更新中,通过与Amazon Verified Permissions的集成,进一步提高了安全性和便利性。未来,预计Amazon Cognito将继续添加更多功能,以满足应用程序的安全和用户管理需求。

我将继续关注Amazon Cognito未来的发展动态,了解其将提供哪些新功能。

标签:Cognito,AWS,用户,认证,Amazon,十周年,Pools
From: https://blog.csdn.net/rralucard123/article/details/141107201

相关文章

  • 探索亚马逊Amazon S3:无缝存储管理与极速数据传输的奥秘
    亚马逊云科技中AmazonS3,因其设计简单与高度可靠,允许用户通过互联网存储和检索任意数量的数据,并能够自动扩展以满足各种规模的需求,使得AmazonS3成为了许多云计算应用和网站的核心存储基础设施之一,AmazonS3提供的功能涉及方面众多,今天博主就云存储服务这一方面知识简单讲解一......
  • Amazon SQS 入门:从基础到进阶的完整指南
    这是对AmazonSimpleQueueService(AmazonSQS)的历史年表的介绍。AmazonSQS作为AWS的基础设施服务之一,于2004年11月首次推出,提供全托管的消息排队服务。为了迎接即将到来的2024年11月的20周年,我们提前撰写了这篇文章,以纪念这一里程碑。文章总结了SQS从诞生至今的主要功能和......
  • 探索Amazon S3:存储解决方案的基石(Amazon S3使用记录)
    探索AmazonS3:存储解决方案的基石本文为上一篇minio使用的衍生版相关链接:1.https://www.cnblogs.com/ComfortableM/p/18286363​ 2.https://blog.csdn.net/zizai_a/article/details/140796186?spm=1001.2014.3001.5501目录探索AmazonS3:存储解决方案的基石引言AmazonS3......
  • 探索Amazon Bedrock:使用Claude 3.5 Sonnet进行图像理解与分析,实现图像生成、验证、再
    引言在之前的文章中,我们介绍了利用AnthropicClaude3.5Sonnet的图像理解与分析功能,通过StabilityAIStableDiffusionXL(SDXL)生成的图像在AmazonBedrock上进行验证和再生成的使用案例。使用Claude3.5Sonnet和StableDiffusionXL:如何通过AmazonBedrock不断优化图像......
  • 探索Amazon S3:存储解决方案的基石(Amazon S3使用记录)
    探索AmazonS3:存储解决方案的基石本文为上一篇minio使用的衍生版相关链接:1.https://www.cnblogs.com/ComfortableM/p/18286363​2.https://blog.csdn.net/zizai_a/article/details/140796186?spm=1001.2014.3001.5501引言云存储已经成为现代信息技术不可或缺的一部......
  • 即刻体验 Llama3.1就在Amazon Bedrock!
    引言在人工智能的浪潮中,大型语言模型(LLMs)不断推动着技术边界的扩展。Meta最新推出的Llama3.1模型系列,以其卓越的性能和广泛的应用前景,引起了业界的广泛关注。现在,激动人心的消息来了——Llama3.1已经在AmazonBedrock上线,让开发者和研究人员能够即刻体验这一革命性技术......
  • Amazon Bedrock 模型微调实践(一):微调基础篇
    本博客内容翻译自作者于2024年7月在亚马逊云科技开发者社区发表的同名博客:“MasteringAmazonBedrockCustomModelsFine-tuning(Part1):GettingstartedwithFine-tuning”:https://community.aws/content/2jNtByVshH7vnT20HEdPuMArTJL?trk=cndc-detail亚马逊云科技......
  • Easysearch、Elasticsearch、Amazon OpenSearch 快照兼容对比
    在当今的数据驱动时代,搜索引擎的快照功能在数据保护和灾难恢复中至关重要。本文将对Easysearch、Elasticsearch和AmazonOpenSearch的快照兼容性进行比较,分析它们在快照创建、恢复、存储格式和跨平台兼容性等方面的特点,帮助大家更好地理解这些搜索引擎的差异,从而选择最适合自......
  • Amazon Science 团队计划于VLDB 2024 (August 26-30 2024) 发布 redset 数据集
    数据集介绍        Redset是一个数据集,包含了三个月的AWSRedshiftfleet 中选定实例样本上运行的用户查询元数据。数据集用途    AmazonScience团队打算在VLDB2024期间开放该部分数据,虽然目前数据集还没有开放,但是从数据集的Schema来看,和在VLDB2024......
  • 生成式 AI 的新引擎:探索 Amazon EC2 P5 实例与 NVIDIA H100 GPU 的结合
    欢迎来到雲闪世界。人工智能(AI)和机器学习(ML)正以前所未有的速度改变我们的世界。为  欢迎来到雲闪世界。了支持这些技术的进步,计算能力的需求也在不断增加。2023年3月,AWS和NVIDIA宣布了一项深度合作,重点是构建最具可扩展性的按需AI基础设施,专为训练日益复杂的大型语言模型(LLM......