在EC2 Linux之间免密码登陆

一、背景

1、应用场景

在云上用EC2运行一些集群式应用的时候,需要让多个节点之间可以无缝的访问,互相具有可信的权限,也就是通常说的免密码登陆。通常,在AWS云上的EC2默认是证书方式登陆的,那么这种免密码登陆与EC2内置的证书登陆有何区别?请看本文讲解。

Continue reading “在EC2 Linux之间免密码登陆”

使用IAM Policy指定IP范围以限制用户对Bedrock服务的调用

一、背景

由于中美贸易战纠纷,一些高科技领域存在黑名单,禁止中国(含香港)地区的用户使用美国开发商的技术和服务。在这种政策要求下,作为业界最前沿的领先的2个大语言模型的供应商 OpenAI(ChatGPT)和 Anthropic(Claude)均宣布不向中国地区用户提供服务。同时,AWS Bedrock上的Claude模型,也需要遵循监管规则,即模型使用者必须是海外用户,包括AWS账户注册的联络地址、账单地址都必须在海外,这些地址不能是中国大陆、也不能是香港,但可以是新加坡。如果是存在Partner代付的场景,Partner也必须满足以上标准。

在以上背景下,海外应用使用Anthropic Claude模型是完全合规的,即模型使用者是在海外,应用代码部署位置也是在海外,处理的信息也是海外用户信息。虽然如此,由于大部分互联网公司的开发团队在国内,开发者经常会在本机使用国内网络直接调用Bedrock上的Claude服务进行开发测试。这种情况下,调用Bedrock Claude服务的来源IP依然是中国地区的IP,此时可能会存在不合规的情况。这种不合规场景有可能会导致账号异常。

为了避免这种不合规场景,可找到调用Bedrock服务的AKSK所对应的IAM User,在这个IAM User上增加对应的IAM Policy,以白名单方式只允许海外特定IP的请求,并拒绝来自其他地区(含中国区)的请求,避免不合规的调用。

Continue reading “使用IAM Policy指定IP范围以限制用户对Bedrock服务的调用”

KMS – 云上数据加密和保护

本文讲解加密相关知识、信封加密原理、KMS密钥类型、KMS与实际服务集合使用。同时针对常见的加密需求,本文将介绍AWS Encrption SDK对文件加密场景,并给出AWSCLI、CLI命令示例、Python代码示例供参考。此外,本文还介绍了使用KMS保护Data Key并使用对称加密算法对字符串加密、非对称加密算法对字符串加密等场景,同时也给出了Python代码示例。

Continue reading “KMS – 云上数据加密和保护”

Bedrock上的Claude模型的Tool use

一、背景

1、什么是Tool use

Tool use也叫做Function calling,这是指模型识别访问意图并调用外部工具的能力。例如在一个对话查询中,希望检索互联网上当前最火热的歌曲,或者触发另一个系统的特定的API。这种能力往往和Agent以及知识库搭配使用。需要注意的是,Tool use场景中大语言模型不会直接运行API Call,而是将需要API Call的请求拼接好返回给调用大语言模型的代码。API call的执行过程是完全由程序调用来负责执行的。因此当代码执行API Call获得返回结果之后,还需要将返回结果再次输入到大语言模型中,并且包含上次的聊天记录一起返回。这时即可获得预期的插叙结果。

本文以一个数学计算为例,输入一个计算要求,识别是Tool场景,程序完成Tool use获取结果,再将结果代回到大模型对话,完成整个流程。

Continue reading “Bedrock上的Claude模型的Tool use”

使用 AWS 托管的 Managed Directory 作为目录服务开通 Workspaces 云桌面

在4-5年前就编写过Workspaces服务开通并且是使用AD Connector与企业现有Active Directory对接的文章。由于界面升级变化,操作体验上和过去的博客文章有所差别了。所以这里新写一篇如何使用 AWS 托管的 Managed Directory 作为目录服务开通 Workspaces 云桌面的文章供参考。

一、背景

Amazon Workspaces是托管的云上桌面服务,专有的Workspaces客户端支持Windows、Mac、Linux和网页等多种形态的设备登录到云桌面,通过PCoverIP或者专有的WSP协议提供流畅的画面显示能力。

Workspaces的每个云桌面都是微软域环境,用户管理、Profile漫游等策略下发都通过域控制器进行,因此所有桌面都是域成员。Workspaces服务支持用户自建域也就是自己的Domain Controller,可通过名为AD Connector的服务进行连接;Workspaces也支持使用AWS云上托管的Managed Directory服务,可无需搭建域控制器,实现几乎开箱即用的体验。

Continue reading “使用 AWS 托管的 Managed Directory 作为目录服务开通 Workspaces 云桌面”

使用SAML协议、以Amazon IAM Identity Center为SSO平台、配置单点登录AWS控制台

一、背景

1、什么是SAML

SAML是用于单点登录认证的通用协议,以XML格式为基础进行配置交换。负责用户认证的系统可被称为SSO平台,可以是基于Active Directory Federation Service构建,也可以是用户自行开发的统一认证平台。应用系统指的是与SSO平台对接的业务软件,例如OA、ERP、代码管理系统等软件。当使用SSO方式登录时候,应用系统本身不需要额外管理用户分组、密码、校验等,也就避免了在多个应用软件之间同步用户清单、同步用户密码的麻烦。

使用SSO是安全领域的最佳实践之一。

Continue reading “使用SAML协议、以Amazon IAM Identity Center为SSO平台、配置单点登录AWS控制台”

通过AWSCLI修改安全规则组允许EC2公网登陆

一、背景

在AWS安全最佳实践中,为EC2分配公有IP地址并开放安全规则住允许从互联网上任意地址(也就是来源为0.0.0.0/0)访问操作系统的SSH/RDP是非常不安全的,有非常大的安全隐患。以近期的SSH漏洞

 https://explore.alas.aws.amazon.com/CVE-2024-6387.html 

为例,这样开放端口可能导致几分钟内系统被侵入。为了规避这个安全风险,一般采用如下方式:

Continue reading “通过AWSCLI修改安全规则组允许EC2公网登陆”

通过分析Bedrock日志来获取不同应用各自调用成本

在Athena查询语句SQL中,更新了Claude 3 Sonnect 3.5的价格(基于美西)。

本文已更新使用Athena Partition Projection功能,无须再手工管理数据分区。

一、背景

1、挑战

Amazon Bedrock提供多了多种基础模型的Model as a Service的调用能力,用户通过API调用Bedrock并指定要交互的模型,如Claude3的不同版本,即可获得模型返回结果。当属于多个团队、多个Workload的不同应用程序,分别调用Bedrock API时候,在AWS的账单中将仅包含从API传入的Token和生成的Token总数,但是没有提供按用户分账的功能。由此,需要一种方式能够帮助用户区分多个应用系统各自调用API的成本。

Continue reading “通过分析Bedrock日志来获取不同应用各自调用成本”

Bedrock & Claude 汇总

Claude模型申请、Bedrock开始使用

Amazon Bedrock上的Anthropic Claude开箱及Converse API使用

Prompt调优

Amazon Bedrock与多模态大语言模型Anthropic Claude 3 开箱(下篇) – Prompt Engineering

Tool use(Function call)

Bedrock上的Claude的Tool use

OpenAI接口兼容的迁移方式 – Bedrock Access Gateway

借助Bedrock Access Gateway实现OpenAI代码兼容的Claude 3模型调用

OCR

使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式

知识库

【10分钟开箱即用】使用Amazon Bedrock知识库构建RAG检索能力

【10分钟开箱即用】视频演示

计费

通过Bedrock日志拆分多个应用和用户的账单

使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式

一、背景

RAG+LLM Chatbot解决方案是AWS中国团队开发的大语言模型的RAG对话机器人,它是一个基于Serverless无服务器技术构建、使用LangChain框架的解决方案,用于快速搭建一套可用于生产环境的知识问答机器人。RAG+LLM Chatbot 支持向量模型 & 大语言模型的灵活配置插拔,设计上采用无服务器方式,无需EC2,前后端分离,可集成到即时通信工具(如飞书)。

在这套解决方案中,包含了一个摄取PDF进行OCR文字识别的工具,其代码可从Github上这里获取。本文介绍使用这个代码调用Claude3模型实现OCR识别。

Continue reading “使用Claude 3进行OCR文字识别将影印件PDF并转换为Markdown文本格式”

使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误

更新于2024年7月,加入5xx错误排查方法。

本文的分析实现两个目的:1)确认一个发布点上绑定多个CNAME时各自的流量;2)找到CloudFront控制台的监控面板上5xx报错的原因。

一、背景

1、关于CloudFront日志种类

Cloudfront日志分成Standard Log标准日志和Realtime Log实时日志。后者时效性好,但是需要Kinesis等日志处理方案,成本更高。对于排查一般的错误,使用标准日志保存到S3上,用Athena查询分析即可。

Continue reading “使用Athena分析Cloudfront Standard Log查询CNAME流量和5xx错误”