在一些信息系统审计中,可能会被要求提交“S3存储是一个被动式系统”、“S3不会主动向外发起网络连接”、“S3不会执行存储的可执行文件”等证明资料。建议通过S3合规性最佳实践进行系统的解答。
一、整体合规性
S3合规性网址说明:
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/s3-compliance.html
官方文档没有使用“S3是一个被动系统”以及“S3不会运行程序”的文字描述,但官网对S3明确定义是存储系统,并且S3满足如下的西方信息技术体系的认证:
- 系统和组织控制 (SOC)
- 支付卡行业数据安全标准 (PCI DSS)
- 联邦风险与授权管理项目 (FedRAMP)
- 健康保险流通与责任法案 (HIPAA)
以上报告可以通过AWS Artifact服务下载到报告(带水印):
https://docs.aws.amazon.com/zh_cn/artifact/latest/ug/downloading-documents.html
在这几个认证中都对系统向外部发起连接的场景做了严格的要求。例如上市公司主要审计的在SOC 2中要求security、confidentiality、privacy;在信用卡支付领域权威认证PCI DSS中要求Cardholder Data Environment (CDE)要求必须显式声明、记录、放行向外部的连接,其余一律禁止。在FedRAMP (Federal Risk and Authorization Management Program) 标准中对Cloud Service Providers(CSP)向外部网络连接有明确声明和定义,并满足FIPS 140-2/-3安全加密标准;在HIPPA医疗隐私防护审计中,从当前系统对外发起的连接需要被声明和记录每一个transactions过程。
S3服务通过了多个以上主流认证,确保S3自身不存在对外的恶意请求隐患。
除了S3本身通过的合规认证之外,还可以对S3上存储的文件实施额外的安全管控措施,进一步提升安全级别。
二、关于如何确保S3上的文件不被篡改
1、使用客户端加密
使用客户端加密,由客户自行管理密钥,写入存储后,如果没有密钥,S3服务和其他服务无法读取/修改/删除文件。客户端加密又包括两种方式:
1) 客户端提供密钥的服务端自动加密机制
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/ServerSideEncryptionCustomerKeys.html
2) 客户端用SDK加密后写入
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/UsingClientSideEncryption.html
2、使用文件锁
使用文件锁定Object Lock,一次写入无法修改。
使用对象锁定以锁定对象 可以帮助您满足金融服务监管机构(如SEC、FINRA 和 CFTC)的技术要求,这些监管机构对于某些类型的账簿和记录信息要求编写一次、多次读取 (WORM) 数据存储。
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/object-lock.html
三、限制对S3的访问来源和内网访问
1、配置内网访问端点
S3可被配置为使用VPC内网安全端点并仅接受专线/VPC发来的访问请
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/privatelink-interface-endpoints.html
2、配置S3策略白名单仅允许内网端点访问
四、开启访问审计和安全扫描
1、资产清单-确认所有文件都被加密
使用 Amazon S3 清单来帮助管理您的存储。例如,您可以出于业务、合规性和法规需要,使用该清单来审核和报告对象的复制和加密状态。
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/storage-inventory.html
2、扫描恶意访问S3
使用GruadDuty监控对S3的恶意调用。
3、开启审计功能
S3的所有操作包括列目录、读取当个文件、写入、策略修改和变更等都有完整交互日志,开启日志并将日志独立保存在单独的AWS账号,可显著提升安全审计能力和水平。
https://docs.aws.amazon.com/zh_cn/AmazonS3/latest/userguide/cloudtrail-logging.html
4、部署第三方S3存储安全扫描软件
可通过Marketplace部署第三方安全工具对S3上存储文件进行扫描,例如:
https://aws.amazon.com/marketplace/pp/prodview-q7oc4shdnpc4w
亦可选择其他工具。
五、存储地点本地要求
如果对存储地点有要求,可使用AWS Outpost服务,在指定地点部署S3存储服务器,并通过本地网络进行访问控制。