Amazon Selling Partner API Guard 是2022年亚马逊为 SP-API 开发者发布的一套针对安全合规的无服务器扫描方案。Amazon Selling Partner API Guard 可以扫描部署在亚马逊云上的负载环境,以评估开发者的环境是否满足 Amazon 的 DPP 数据保护协议的要求和需要。
通常,亚马逊会委托独立的第三方来进行安全合规审计,评估开发者 SP-API 应用的环境与相关文档,以确保亚马逊的客户数据的安全。相比传统的审计流程,使用 Amazon Selling Partner API Guard 可以极大地减少人工的审计和干预,24小时收到亚马逊的审计报告,并可以将报告自动地发送给亚马逊进行评估。接下来我们将介绍如何部署 Amazon Selling Partner API Guard 并扫描上传安全合规报告。
要求和需要:
https://developer-docs.amazon.com/sp-api/docs/guidance-to-address-key-security-controls-in-sp-api-integration
安全合规审计:
https://developer-docs.amazon.com/sp-api-blog/docs/security-audits-best-practices-and-readiness
主要安全组件及架构
架构图
方案构架图
整个 Amazon Selling Partner API Guard 架构方案涉及的无服务器组件有:
● Amazon S3: 用于存储 Report 以及本方案的 artifact。
● Amazon SNS: 用于接收消息并发送给 SP-API 开发者的订阅邮箱。
● Amazon Lambda: 用于触发生成报告任务。
● Amazon EventBridge: 用于编排整个方案的任务。
● Amazon IAM: 用于创建对应服务所使用的最小应用权限。
此外,本方案也会创建一个 VPC 网络和 Amazon EC2 服务器,用于给 SP-API 开发者提供 Amazon CLI 命令行交互的运行环境,以便手动触发任务并上报报告。
整个方案涉及到的安全扫描组件有:
● Amazon Macie: 用于检测在 RDS 数据库、S3 存储桶和 Amazon DynamoDB 数据库中未加密存储的 PII。
● Amazon GuardDuty: 用于监控进出 VPC 的网络流、S3 事件、Amazon CloudTrail 和 DNS,并分析这些日志和检查模式中是否存在任何异常。此外还会检查 EC2 实例、ECS 和 EKS 上是否存在恶意软件。
● Amazon Inspector: 用于监控 EC2 实例和 ECR 存储库在各个端口上是否存在漏洞和意外网络暴露。
●Amazon IAM Access Analyzer: 用于评估提供给外部用户的权限,以确保正确设置访问控制。
● Amazon Config: 用于扫描数据库、S3、EC2 等组件的配置安全合规性。
● Amazon Security Hub: 用于利用默认和自定义 Config 规则来验证您的安全标准。它还充当工作台,用于汇总和显示以上服务的扫描结果。
部署流程
前期准备
服务配额
为了保证服务可以完整运行,您需要事先在亚马逊云账户中确认:
1.确保创建的 Region 内 VPC 的 Quota “VPCs per Region” 没有到达上限。
2.确保创建的 Region 内 EC2 的 Quota “Running On-Demand Standard (A、C、D、H、I、M、R、T、Z) instances” 没有到达上限。
3.服务配置。
为了满足加密需要,您还需要在 EC2 界面右上角 – “Account Attributes” – “Settings” – “EBS Encryption” 中为 EBS 存储设置自定义的 Key。
EBS Encryption
部署
本方案会使用 CloudFormation 在您的亚马逊云科技中国或全球环境中自动一键部署整个架构。CloudFormation 是一种通过声明式代码让开发人员创建一系列云上相关服务的模版。您可以直接在 Seller Central 后台中获得并启动 CloudFormation 模版。
Seller Central 后台:
https://sellercentral.amazon.com/sellingpartner/developerconsole/compliance
如果您没有直接访问亚马逊 Seller Central 的权限,也可以通过以下链接自动地在您的亚马逊云中国和海外的环境中启动本方案。
海外版
https://amazon-selling-partner-api-guard-artifacts.s3.amazonaws.com/latest/aws/amazon-selling-partner-api-guard-aws.template
中国版
https://amazon-selling-partner-api-guard-artifacts.s3.amazonaws.com/latest/aws-cn/amazon-selling-partner-api-guard-aws-cn.template
其中,亚马逊云科技在不同区域提供的服务可能有所不同,您可以通过 Selling Partner API Guard 参考文档和亚马逊云区域性服务列表来对照。
Selling Partner API Guard:
https://developer-docs.amazon.com/sp-api/docs/sp-api-guard-regional-deployments
亚马逊云区域性服务列表:
https://aws.amazon.com/cn/about-aws/global-infrastructure/regional-product-services/
在进入 CloudFormation 服务页面启动部署模版时, Stack name 需填写“Selling-Partner-API-Guard-Stack”。此外您需要填写 DeveloperEmail 和 MerchantToken 信息。DeveloperEmail 将被用于接收在 Amazon Selling Partner API Guard 部署过程中遇到的指引和通知,以及在部署完成后接收来自 Amazon Selling Partner API Guard 发送的扫描报告。MerchantToken 代表你的开发者账户所在店铺的信息,你可以访问此页面获得。亚马逊将通过 MerchantToken 来识别你的开发者账户。
此页面:
https://sellercentral.amazon.com/sw/AccountInfo/MerchantToken/step/MerchantToken
CloudFormation 启动页
常见问题
如果您的订阅邮箱中有收到类似如下部署失败的问题通知邮件。
常见问题
您可按照邮件中的内容提示,参考下图为 KMS 服务中的 Key Policy 添加邮件内容中的策略。并点击邮件中的链接重新开启服务器创建任务。
KMS 自定义密钥策略
服务器创建任务
如 Enable 服务器创建任务后仍旧收到部署失败的问题通知邮件,可参考 CloudFormation Events 事件中 Status reason 的报错信息并确认:
●Region 中仍有 VPC 的配额
●Region 中仍有 EC2 的配额
●扫描并上传报告
部署完成后您的邮箱中将会收到来自 Amazon Selling Partner API Guard 发出的 CLI 交互的 Session Manager URL 链接。您可点击 URL 地址来登录到 Guard 创建的 EC2 服务器中,通过 CLI 来触发扫描报告的任务。
部署成功邮件
首先,您需要运行以下命令来进入 Guard CLI 程序的工作路径:cd GuardCli/
Guard 命令行交互界面
接下来,运行以下命令来进行扫描任务配置:
sudo ./guardcli enable_services
然后,运行以下命令来开启扫描任务:
sudo ./guardcli start_scan
最后,运行以下命令来将扫描的报告发送至亚马逊:
./guardcli report_to_amazon
在完成上述任务的24小时后,您将收到扫描完成的通知邮件,邮件中将包含扫描的审计问题总结,以及扫描报告的下载链接。
扫描报告邮件
扫描报告样例
扫描报告中将会包含不合规的资源名称、描述、修复的重要等级,以及相对应的 DPP 保护协议条款和修复建议。
至此,您成功完成了部署 Amazon Selling Partner API Guard,扫描资源生成安全报告,并及时上传报告至 Amazon Services API Team。相较以往人工审计的方式,Amazon Selling Partner API Guard 基于亚马逊云的整个审计流程不仅更快、更自动化,并且也可以使您对 SP-API 应用在亚马逊云上环境的安全有更好的了解。
本篇作者
Aonan Guan
亚马逊云科技解决方案架构师,负责基于亚马逊云科技云计算方案架构的咨询和设计,曾任算法工程师和部署平台全栈软件开发工程师。
Lei Wang
亚马逊 SP-API 中国区负责人。亚马逊云科技解决方案架构师。专注亚马逊电商平台合作伙伴及第三方服务商 ISV 的 SP-API 对接咨询及推广。为中国区开发者提供基于 SP-API 的解决方案。
听说,点完下面4个按钮
就不会碰到bug了!