写点什么

亚马逊云科技服务之安全巡检及优化

  • 2024-08-21
    上海
  • 本文字数:4792 字

    阅读完需:约 16 分钟

亚马逊云科技服务之安全巡检及优化

基础设施保护是信息安全的基石,对企业而言至关重要。它的核心目的是防止企业遭受未经授权的访问、恶意入侵和缺陷利用等威胁。随着数字化转型的推进,企业越来越依赖云计算和网络基础设施,这也使得它们面临的安全风险显著增加。客户需要采取积极的措施来管理其云端配置。以下几点凸显了基础设施防护的重要性:

· 防止数据泄露:基础设施保护能够防止敏感数据被未经授权的人员访问,从而保护企业的商业机密和客户隐私。

· 防范缺陷利用:定期的安全扫描和补丁管理能够及时发现并修补系统和应用中的缺陷,防止其他技术人员利用这些缺陷进行入侵。

· 确保合规性:许多行业都有严格的数据保护和隐私法规(如 GDPR、HIPAA 等),基础设施保护措施能够帮助企业符合这些法律法规的要求,避免高额罚款和声誉损失。

· 增强客户信任:良好的安全记录和强有力的基础设施保护措施能够增强客户对企业的信任,从而提升企业的市场竞争力和品牌形象。


伊克罗德认识到基础设施防护和云端配置管理的安全在信息安全中的关键作用,并制定了全面的安全防护方案。通过数据分析和先进的安全技术,伊克罗德帮助客户提升云端安全性,减少业务受入侵的风险。自 2023 年以来,伊克罗德已经处理了多起客户反馈的安全事件,包括 AK/SK 泄露、S3 Bucket 安全问题以及网络安全组公开等问题。这些问题多源于运维人员对云端安全意识的不足。针对这些问题,伊克罗德售后团队制定了详细的安全检查和优化方案,确保客户的云端环境始终处于最佳保护状态。


(一) AWS 服务巡检方案

伊克罗德作为亚马逊云科技的高级合作伙伴,推出的 AWS 服务巡检方案能及时检查客户在 AWS 上的资源状况及利用情况。方案通过 API 收集并分析资源利用率和账单数据,覆盖 AWS EBS、EC2、VPC、RDS、S3、EKS、ElastiCache、Redshift、ECS 等常用服务。

巡检内容:

1. 全面的安全合规检查

· AWS Security Top 10:我们的巡检方案依据 AWS Security Top 10,确保环境的安全性、合规性和性能。

· 身份和访问管理:定期检查 IAM 用户和角色权限,确保最小权限原则的实施,减少潜在入侵面。

· 日志记录和监控:审查 CloudTrail 配置,确保所有关键操作都有记录,并设置及时的告警和监控机制。

· 数据保护:检查 EBS 数据存储的安全性,审查 S3 上的数据保护措施以及 KMS 的安全管理,保障数据的机密性和完整性。

2. 资源优化与成本控制

· 识别未使用资源:通过定期检查未使用的资源(如闲置的 EBS 卷),帮助客户优化资源配置,降低不必要的成本。

· 账单分析:利用 Cost Explorer 数据分析资源使用情况,识别费用异常的资源,并提出优化建议,避免资源浪费。

3. 性能监控与优化

· CPU 使用率监控:持续监控实例的 CPU 使用率,帮助用户识别高负载实例,及时进行性能调优,保障业务的高效运行。

· 定期巡检与报告:通过定期巡检和生成详细报告,让客户清楚了解其 AWS 环境的健康状况和潜在风险。

4. 定制化的可视化 Dashboard

· 直观的数据可视化:通过自定义 Dashboard,客户可以直观地查看资源使用情况,界面美观、易于理解,并能清晰展示资源的变化趋势。

· 灵活的分析工具:利用自定义代码和强大的图表工具,实现灵活的资源使用概览,帮助客户实时监控和优化其 AWS 资源。

权限配置:

1. 使用 Role:配置具有 ReadOnly 权限的 SwitchRole 角色;

2. 使用 SSO:提供 sso_start_url 及 ReadOnly 的权限 SwitchRole 角色;

适用对象:

所有 AWS Global/CN 客户

巡检处理流程:


操作频率:

Ÿ 安全设定检查:每 24 小时至少一次

Ÿ 费用异常:依据 AWS 原生费用异常检测告警

Ÿ 闲置资源:每周至少 1 次

优点:

1) 根据 AWS Security Top 10,定时查看云端的安全配置情况

2) 识别审查云端资源,减少可被入侵面

3) 定期检查云端资源的使用情况,减少资源浪费

(二) 伊克罗德 AWS 巡检方案示例

伊克罗德根据客户需求定制巡检服务,以下是服务处理流程::


示例 1:成本优化

通过 API 获取账单信息,筛选出本月费用超过上个月 10%的部分,并分类显示。

代码示例如下:

Code Snippet:select  case    when prev_month.service_name is null then 'arn:' || base_month.partition || ':::' || base_month.account_id || ':cost/' || base_month.service    else 'arn:' || prev_month.partition || ':::' || prev_month.account_id || ':cost/' || prev_month.service  end as resource,  case    when base_month.cost is null then 'skip'    when prev_month.cost is null then 'ok'    -- adjust this value to change threshold for the alarm    when (prev_month.cost - base_month.cost) between (base_month.cost * 0.1)  and 50 then 'info'    when (prev_month.cost - base_month.cost) > (base_month.cost * 0.1) and (prev_month.cost - base_month.cost) > $1 then 'alarm'    else 'ok'  end as status
复制代码

显示结果(以下为 AWS CN Account 检测数据):


示例 2:巡检数据图形化产出


根据客户需求,定时导入数据到内部开发的图表工具中,生成可视化看板,帮助客户清晰查看资源状态。通过图表,客户可以直观分析 AWS 资源使用和费用情况,快速识别异常资源和潜在浪费,优化资源管理。

示例 3:伊克罗德可视化监测面板

伊克罗德基于客户 AWS 资源使用情况,提供自定义 Dashboard 解决方案。通过代码识别闲置资源(如未使用 EBS 卷、EIP、NAT 等)、分析实例 CPU 利用率等,帮助优化资源配置,降低成本,提升性能表现。通过监控实例的 CPU 使用率,帮助用户识别高负载实例,及时进行性能调优。使用图表进行数据可视化,界面美观且易于理解,能够清晰显示资源变化情况。

1. 面板样例


仪表板包含顶部的 AWS 基本资源概况、分析及性能与利用率三部分。内容如下:

Ÿ 基本资源概况:EBS、EC2、unattached EBS、VPC、RDS、S3。

Ÿ 分析视图:实例按状态、区域、账户分布。

Ÿ 性能与利用率:过去 7 天中 CPU 使用率最高的前 10 个 EC2 及 RDS 实例。

2. 配置设定

以上示例为根据 AWS 基础服务资源实现的一个简易 Dashboard,其配置示例如下:

Code Snippet:mod "local" {  title = "Insight-mod-ECR"}dashboard "dashboard_total_ec2" {  title = "ECR Dashboard"  text {    value = "ECR will use this dashboard to show you account resource usage and help you optimize your observation resource usage!"  }  container {     title = "AWS Basic Resources Overview"    # Analysis    card {      query = query.ebs_volume_count      width = 2    }    card {      sql = query.ec2_instance_count.sql      width = 2    }    card {      query = query.ebs_volume_unattached_count      width = 2    }    card {      query = query.vpc_count      width = 2    }    card {      query = query.rds_db_cluster_count      width = 2    }    card {      query = query.s3_bucket_count      width = 2    }}  container {     title = "Analysis"    chart {      title = "Instances by State"      query = query.ec2_instance_by_state      type  = "donut"      width = 4    }    chart {      title = "Instances by Region"      query = query.ec2_instance_by_region      type  = "column"      width = 4    }    chart {      title = "Instances by Account"      query = query.ec2_instance_by_account      type  = "column"      width = 4    }
} container { title = "Performance & Utilization" chart { title = "Top 10 CPU - Last 7 days" query = query.ec2_top10_cpu_past_week type = "line" width = 6 } chart { title = "Top 10 CPU - Last 7 days" query = query.rds_db_instance_top10_cpu_past_week type = "line" width = 6 } }}
#AWS Basic Resources Overviewquery "ebs_volume_count" { sql = <<-EOQ select count(*) as "Volumes" from aws_ebs_volume; EOQ}query "ec2_instance_count" { sql = <<-EOQ select count(*) as "Instances" from aws_ec2_instance EOQ}query "ebs_volume_unattached_count" { sql = <<-EOQ select count(*) as value, 'Vol Not In-Use' as label, case count(*) when 0 then 'ok' else 'alert' end as "type" from aws_ebs_volume where jsonb_array_length(attachments) = 0; EOQ}query "vpc_count" { sql = <<-EOQ select count(*) as "VPCs" from aws_vpc; EOQ}query "rds_db_cluster_count" { sql = <<-EOQ select count(*) as "DB Clusters" from aws_rds_db_cluster; EOQ}query "s3_bucket_count" { sql = <<-EOQ select count(*) as "Buckets" from aws_s3_bucket; EOQ}#Analysisquery "ec2_instance_by_region" { sql = <<-EOQ select region, count(i.*) as total from aws_ec2_instance as i group by region EOQ}query "ec2_instance_by_account" { sql = <<-EOQ select a.title as "Account", count(i.*) as "total" from aws_ec2_instance as i, aws_account as a where a.account_id = i.account_id group by a.title order by count(i.*) desc; EOQ}query "ec2_instance_by_state" { sql = <<-EOQ select instance_state, count(instance_state) from aws_ec2_instance group by instance_state EOQ}
#Performance & Utilizationquery "ec2_top10_cpu_past_week" { sql = <<-EOQ with top_n as ( select instance_id, avg(average) from aws_ec2_instance_metric_cpu_utilization_daily where timestamp >= CURRENT_DATE - INTERVAL '7 day' group by instance_id order by avg desc limit 10 ) select timestamp, instance_id, average from aws_ec2_instance_metric_cpu_utilization_hourly where timestamp >= CURRENT_DATE - INTERVAL '7 day' and instance_id in (select instance_id from top_n) order by timestamp; EOQ}query "rds_db_instance_top10_cpu_past_week" { sql = <<-EOQ with top_n as ( select db_instance_identifier, avg(average) from aws_rds_db_instance_metric_cpu_utilization_daily where timestamp >= CURRENT_DATE - INTERVAL '7 day' group by db_instance_identifier order by avg desc limit 10 ) select timestamp, db_instance_identifier, average from aws_rds_db_instance_metric_cpu_utilization_hourly where timestamp >= CURRENT_DATE - INTERVAL '7 day' and db_instance_identifier in (select db_instance_identifier from top_n) order by timestamp; EOQ}
复制代码

(三) 参考链接

https://aws.amazon.com/cn/blogs/security/top-10-security-items-to-improve-in-your-aws-account/

https://docs.aws.amazon.com/zh_cn/IAM/latest/UserGuide/getting-started-roles.html

​https://docs.aws.amazon.com/zh_cn/singlesignon/latest/userguide/using-the-portal.html​

如果您对此方案感兴趣,可以通过如下方式联系:

联系邮箱:tech-support@ecloudrover.com

发布于: 刚刚阅读数: 3
用户头像

是您值得信赖的一站式上云解决⽅案提供者 2023-11-26 加入

伊克罗德信息是一家专注于赋能企业数智化转型的企业服务公司,为客户提供上云咨询、项目迁移、混合云托管、多样化上云解决方案,服务客户横跨互联网、媒体、游戏、电商零售、制造、汽车、金融科技、社交应用等行业。

评论

发布
暂无评论
亚马逊云科技服务之安全巡检及优化_伊克罗德信息科技_InfoQ写作社区