阿里云AccessKey调用溯源最佳实践

本文涉及的产品
对象存储 OSS,20GB 3个月
对象存储 OSS,恶意文件检测 1000次 1年
公网NAT网关,每月750个小时 15CU
简介: 本文主要介绍如何对阿里云访问控制访问密钥(AccessKey)开展调用溯源工作,方便大家快速有效的开展事件调查、安全加固、应急处置等。

本文主要介绍如何对阿里云访问控制访问密钥(AccessKey)开展调用溯源工作,方便大家快速有效的开展事件调查、安全加固、应急处置等。

概述

阿里云资源除了可以通过控制台进行管理,还可以通过访问密钥(AccessKey,包含AccessKey ID和AccessKey Secret)进行管理。一般我们可通过操作审计云产品对其调用记录进行查看,但AccessKey调用记录根据用户配置的endpoint地址不同,记录的调用源IP也不一样(如果配置的是公网endpoint,调用源IP一般为客户侧公网EIP出口IP地址,如果为内网endpoint,调用源一般记录的是客户侧VPC IP地址),所以如果想要进行全链路溯源,需要结合多个云产品日志进行关联查询,本文将为大家介绍整体AccessKey溯源方法和注意事项。

方案介绍

本方案将介绍访问控制、操作审计、VPC、SLS等多个云产品结合使用,对AccessKey调用日志进行全链路溯源(办公网和互联网的调用溯源不在本方案范围),尽可能缩小调用范围,定位到实际使用方。

目标读者

  • 运维人员:访问密钥使用记录查看。

  • 开发人员:应用系统配置文件梳理。

  • 安全人员:事件调查、策略实施、应急处置。

适用场景

  • 应用系统迁移,梳理AccessKey调用源IP。

  • AccessKey泄露应急处置,梳理AccessKey调用源IP,完成密钥替换。

  • 梳理AccessKey调用源IP,完成密钥ACL安全加固。

  • 查询AccessKey调用情况,完成运维管理事件调查。

  • 查询AccessKey最后调用时间,完成长期闲置密钥下线。

相关概念

  • RAM用户:RAM用户是RAM中的一种身份,对应某一个操作实体(运维操作人员或应用程序),通过创建新的RAM用户并授权,RAM用户便可以访问相关资源。

  • AccessKey:AccessKey可通过阿里云主账号和阿里云RAM创建,是在调用阿里云API时需要使用完成身份验证的长期凭证。

  • Endpoint:表示OSS对外服务的访问域名,分为内网Endpoint(如oss-cn-hangzhou-internal.aliyuncs.com)和外网Endpoint(如oss-cn-hangzhou.aliyuncs.com)。

方案架构

AccessKey访问阿里云过程图S112

  • 如果配置的是公网Endpoint,需要先通过VPC和NAT转换成出口EIP,然后到API网关请求目标资源数据,操作审计记录的调用源IP为公网出口IP地址。

  • AccessKey访问云产品根据配置的Endpoint不同,调用过程也不同。

  • 如果配置的是内网Endpoint,用户密钥直接通过VPC内网IP地址到API网关请求目标资源数据,而操作审计记录的调用源IP为VPC IP地址。

调用溯源架构AccessKey调用溯源架构图

  • 用户AccessKey使用过程中会将访问源IP地址、源端口、目标域名、目标端口、时间请求时间等信息进行日志保存。

  • 一般AccessKey请求日志会在网关进行统一记录,然后操作审计、访问控制等云产品获取网关日志进行统一展示,供用户查询使用。

  • VPC流日志、NAT日志等可协助溯源内网和出口EIP映射关系。

  • OSS、MQ等部分云产品具体对象请求类日志量较大,操作审计日志未记录,需单独通过云产品自身日志功能开启进行查询。

方案实施

操作审计日志转储配置

操作审计默认为每个阿里云账号记录最近90天的操作事件,必须创建跟踪才能记录更长时间的操作事件,否则将无法追溯90天以前的操作事件。同时为方便做数据统计分析以及多字段关联查询,建议也开启操作审计日志转储配置。Gz

VPC流日志转储配置

VPC提供流日志功能,可以记录VPC网络中弹性网卡ENI(Elastic Network Interface)传入和传出的流量信息,可帮助检查访问控制规则、监控网络流量和排查网络故障。

l1

全链路溯源案例01

前提条件

开通操作审计日志和VPC流日志转储,日志保留时间大于事件发生时间。

场景描述

查找用户AccessKey最后一次调用的时间、内网IP、调用云产品和接口信息。

详细溯源步骤

  1. 通过主账号或RAM子账号登录阿里云控制台,选择云产品日志服务 SLS

    SLS
  2. 输入操作审计转储的日志服务 SLSproject名称,点击进入。

    Project
  3. 选择要查询的时间段(近30天),输入查询SQL进行查询。

    *|select "event.acsregion" ,"event.errormessage","event.eventid","event.eventsource","event.eventname","event.requestid","event.servicename","event.sourceipaddress","event.useridentity.accesskeyid",from_unixtime(__time__) time from log where "event.userIdentity.accessKeyId"='用户AccessKeyID order by from_unixtime(__time__) desc limit 2sss得到执行时间(time)为:2022-01-04 13:59:34.000,云产品(event.servicename):kms,接口(event.eventname):Decrypt,源IP(event.sourceipaddress):xx.xxx.xx.xx,目标域名或IP(event.eventsource):kms.xxxxx.aliyuncs.com。

  4. 发现调用源IP为EIP出口IP,解析目标域名对应的IP地址。

    目标域名先解析为IP地址:nslookup kms.xxxxx.aliyuncs.com。S2

    得到解析的目标IP地址Dest1和Dest2。

  5. 根据VPC流日志和操作审计查询信息进行EIP和VPC IP映射查询。

    进入VPC流日志转储Project,根据目标IP地址、调用时间输入SQL进行查询。

    *|select srcaddr,dstaddr, from_unixtime(start) start ,from_unixtime(__time__) time from log where (dstaddr='Dest1' or dstaddr='Dest2') and from_unixtime(start)>='2022-1-4 13:59:33' and from_unixtime(start)<='2022-1-4 13:59:35' order by start descssss根据映射关系可查到具体内网VPC IP地址。

说明

如需进一步做配置查询、应用归属查询、ACL防护策略加固等,可结合自身资产管理系统和访问控制云产品对AccessKey进一步处置。

全链路溯源案例02

前提条件

拥有云产品访问控制权限。

场景描述

超过6个月未使用的AccessKey梳理和禁用。

详细溯源步骤

  1. 用户AccessKey最后使用时间查询可通过登录阿里云控制台,在云产品访问控制界面进行逐个查询,记录AccessKeyID、最后使用时间、状态等基础信息。f1c1

  2. 为方便快速高效的进行批量查询,可通过阿里云OpenAPI进行查询。

    1. 列出所有RAM用户信息。

      ListUsers接口说明

      ListUsers_Python脚本参考

    2. 根据RAM用户信息,列数对应的AccessKey信息。

      ListAccessKeys接口说明

      ListAccessKeys_Python脚本参考

      GetAccessKeyLastUsed接口说明

      GetAccessKeyLastUsed_Python脚本参考

  3. 根据最后访问时间,筛选出最近6个月未访问的AccessKey,然后在访问控制对其执行禁用。

C2
重要

部分云产品的AccessKey调用信息未记录操作审计,因此我们主要依托访问控制最后调用时间来评估其是否长期未使用。

全链路溯源案例03

前提条件

开通操作审计日志转储,日志保留时间大于统计需求时间。

场景描述

用户想通过AccessKeyID查询指定时间内所有访问源IP统计数据,方便实施访问控制白名单。

详细溯源步骤

  1. 用户提供AccessKeyID,去云产品操作审计转储的SLS Project进行查询和统计数据分析。S2

  2. 根据要做分级分析的时间,进行SQL统计分析查询。s1SQL语句可参考:

    * |select "event.sourceIpAddress" as "源IP" ,count(*) as "IP统计数量" from log where from_unixtime(__time__)>='2021-12-31' group by "event.sourceIpAddress" order by count(*) desc

  3. 对AccessKey实施白名单访问控制。

    根据上一步梳理的访问源,通过访问控制自定义策略进行安全白名单设置,Accesskey ACL实施文档参考

警告

  • 部分云产品或接口AccessKey调用信息未记录在操作审计日志,因此通过操作审计梳理的访问源IP仅为主要参考,实施ACL访问控制还需谨慎操作。

  • OSS、MQ等云产品的AccessKey调用信息源IP梳理需结合其自身云产品日志,用于确定其全面的访问源信息。

  • 建议用户侧VPC网段、出口EIP以及阿里云内网IP网段默认作为可访问的白名单列表。

全链路溯源案例04

前提条件

开通操作审计日志,日志保留时间大于事件发生时间。

场景描述

用户想查看某个AccessKey在什么时间通过什么IP做了什么高风险操作。

详细溯源步骤

  1. 操作审计控制台直接查看。cz1

  2. 通过日志服务 SLS做查询。11查询SQL语句参考:

    *|select * from log where "event.eventName"='DeleteInstance' and "event.userIdentity.accessKeyId" ='用户AccessKey ID'

说明

操作审计控制台筛选条件有限,如想通过多个字段进行过滤,推荐使用操作审计转储至SLS的日志进行查询。

常见问题

EIP出口IP无法通过流量日志溯源到内网IP地址

  • 请检查流量日志保存时间是否在查询时间范围内,如保留周期超过查询时间则无法追溯内网IP映射关系。

  • 请检查流日志是否采集全全部VPC交换机流量,如未采集全可能会漏掉部分流量导致无法追溯内网IP映射关系。

  • 请检查SQL语句以及响应筛选条件(时间、端口、目标IP、进、出流量等)是否和操作审计事件时间等信息一致,如不一致可能导致无法追随内网IP映射关系。

操作审计无法找到对应AccessKey执行记录

  • 对应云产品暂未接入操作审计日志,具体接入操作审计的云产品列表请参考

  • 对应云产品部分接口或事件未接入操作审计日志,需要单独开通对应云产品事件日志进行查询,如OSS、MQ等。

企业账号VPC云产品下无流日志菜单,无法完成流日志开通

相关文章
|
19天前
|
敏捷开发 测试技术 持续交付
云效产品使用常见问题之不知道哪里配置access权限 如何解决
云效作为一款全面覆盖研发全生命周期管理的云端效能平台,致力于帮助企业实现高效协同、敏捷研发和持续交付。本合集收集整理了用户在使用云效过程中遇到的常见问题,问题涉及项目创建与管理、需求规划与迭代、代码托管与版本控制、自动化测试、持续集成与发布等方面。
|
25天前
|
弹性计算 安全 API
访问控制(RAM)|云上安全使用AccessKey的最佳实践
集中管控AK/SK的生命周期,可以极大降低AK/SK管理和使用成本,同时通过加密和轮转的方式,保证AK/SK的安全使用,本次分享为您介绍产品原理,以及具体的使用步骤。
101946 3
|
2月前
|
存储 数据采集 安全
|
5月前
|
SQL 弹性计算 监控
构建多账号云环境的解决方案|多账号云上操作日志统一审计
操作审计(ActionTrail)是阿里云提供的云账号资源操作记录的查询和投递服务,可用于安全分析、资源变更追踪以及合规性审计等场景。企业在阿里云采用多账号的资源结构时,如何满对跨账号跨地域的云上操作日志进行统一归集留存和分析,是企业上云管云过程的必备环节。此次分享为您介绍如何使用操作审计产品进行中心化的审计,提升云上多账号操作的可控可见性,及时发现问题、响应问题,规避潜在风险。
266 0
|
5月前
|
运维 监控 安全
构建多账号云环境的解决方案|多账号配置统一合规审计
配置审计(Cloud Config)是提供了面向资源配置的审计服务,可以持续监控资源的配置变更,并在变更时自动触发合规评估,确保持续性合规。为了解决企业运维和安全人员业检查资源合规配置的效率难题,配置审计为客户提供了多账号的统一审计能力。用户可以在管理账号或者委派账号中统一设置合规基线并应用,从而可以实时查看企业下经过汇总的不合规资源。
63962 36
|
10月前
|
SQL JSON 运维
数据服务最佳实践(1):支持注册外部API,打造企业数据服务中心【Dataphin V3.11】
在DataphinV3.11版本中,我们支持了注册外部API的能力,用于支持客户统一管理企业所有的API,打造企业的数据服务中心。API注册到Dataphin之后,可以由Dataphin统一纳管,和其他方式创建的API共用相同的服务市场、权限管控、运维监控能力。 同时我们支持了Json文本解析能力,支持编写类似正则表达式的语法定义注册API返回参数的取值路径,满足企业自定义取数的场景。
670 0
|
12月前
|
数据安全/隐私保护
带你读《商用密码技术最佳实践白皮书》——委托凭证(2)
带你读《商用密码技术最佳实践白皮书》——委托凭证(2)
|
12月前
|
数据安全/隐私保护
带你读《商用密码技术最佳实践白皮书》——委托凭证(1)
带你读《商用密码技术最佳实践白皮书》——委托凭证(1)
|
数据可视化 安全 数据挖掘
「教程」天气预警 API 详解:申请密钥到接入代码一气呵成!
天气预警 API 作为一种新型的数据接口,为开发者和应用提供了方便的获取天气预警数据的方式。通过该 API ,可以获取指定城市当前生效中的各类天气预警信息,例如暴雨、雷电、台风等。预警数据来自国家预警中心,保证了数据的高质量和实时性。
317 0
|
安全 调度 数据安全/隐私保护
数据安全最佳实践(6):敏感数据实时识别与批量保护【Dataphin V3.9】
在DataphinV3.9版本中,我们支持了敏感数据实时识别的能力,能够实时发现敏感数据并进行保护,形成了手动上传+周期识别+实时识别的完整敏感数据识别体系。 同时,我们在DataphinV3.9版本中,支持了给敏感数据批量配置脱敏策略,可以给没有单独配置脱敏策略的敏感数据进行批量的脱敏保护,从而确保敏感数据不泄露。
数据安全最佳实践(6):敏感数据实时识别与批量保护【Dataphin V3.9】