美圖欣賞 | 設為首頁 | 加入收藏 | 網站地圖

當前位置:新錦江平臺:www.xjj7.com-電腦中國 > 云計算 > 云安全 >

避免構建時常見的這五個AWS配置不當

2020-11-18 10:22|來源:未知 |作者:dnzg |點擊:

基礎架構即代碼(IaC)使云資源配置更快速、更簡單、更具擴展性。它還使我們有機會進行比較簡單的更改,從而對我們的云安全狀況產生持久影響。

為了表明這一點,我們分析了實際環境中的IaC模塊最常見的亞馬遜網絡服務(AWS)安全錯誤。我們在本文中剖析了最常見的不合規AWS策略以及相關的風險。我們還將介紹解決每個錯誤所需的簡單的構建時Terraform配置。

確保存儲在S3存儲桶中的所有數據安全地靜態加密

S3支持使用AES-256加密標準進行簡單的免費加密。眾所周知,有人可能訪問存儲您數據的硬盤,而S3存儲桶靜態加密對于防止數據暴露在這些人的面前很重要。

為了符合該策略——PCI-DSS和NIST-800要求這樣,需要默認情況下對相關存儲桶設置加密。這將使保存到該S3存儲桶的所有后續項目都被自動加密。

將以下塊添加到Terraform S3資源以添加AES-256加密:


  1. server_side_encryption_configuration { 
  2.   rule { 
  3.     apply_server_side_encryption_by_default { 
  4.       sse_algorithm = "AES256" 
  5.     } 
  6.   } 

確保存儲在Launch Configuration EBS中的所有數據已安全加密

亞馬遜彈性塊存儲(EBS)卷支持內置加密,但默認情況下不加密。EBS Launch Configurations指定了可被Auto Scaling組用來配置Amazon EC2實例的Amazon EC2 Auto Scaling啟動配置。

加密整個EBS卷后,靜態存儲在卷上的數據、磁盤I/O、從該卷創建的快照以及EBS和EC2之間的傳輸中數據都將被加密。

讓您的數據保持靜態加密可確保未經授權的人無法訪問。PCI-DSS也要求遵守該策略。 為防止Terraform模塊中出現該AWS錯誤,確保為EBS Launch Configurations啟用了加密:


  1. resource "aws_launch_configuration" "as_conf" { 
  2.   name_prefix = "terraform-lc-example-" 
  3.   image_id = data.aws_ami.ubuntu.id 
  4.   instance_type = "t2.micro" 
  5. + encrypted = enabled 

確保對客戶創建的CMK進行輪換已啟用

AWS密鑰管理服務(KMS)允許客戶輪換備用密鑰。密鑰材料存儲在KMS中,并與客戶主密鑰(CMK)的密鑰ID綁定在一起。備用密鑰用于執行加密操作,比如加密和解密。密鑰自動輪換目前保留所有先前的備用密鑰,以便透明地進行加密數據解密。

密鑰未輪換的時間越長,使用它加密的數據就越多,被危及的可能性就越大。泄露這種密鑰會泄露使用該密鑰加密的所有數據,因此強烈建議每年輪換一次加密密鑰。

默認情況下,CMK自動輪換未啟用,但是建議啟用以幫助減小密鑰泄漏的潛在影響。還需要啟用它,以符合PCI-DSS、CSI和ISO27001。

想解決Terraform中的這個錯誤配置,啟用密鑰輪換:


  1. resource "aws_kms_key" "kms_key_1" { 
  2.   description = "kms_key_1" 
  3.   deletion_window_in_days = 10 
  4.   key_usage = "ENCRYPT_DECRYPT" 
  5.   is_enabled = true 
  6.  + enable_key_rotation = true 

確保DynamoDB時間點恢復(備份)已啟用

Amazon DynamoDB的時間點恢復(PITR)讓您只需點擊一下即可恢復DynamoDB表數據。您在深入研究數據泄露和數據損壞攻擊時,這提供了故障保護,這也是PIC-DSS、CIS和ISO27001所要求的。

然而要創建和訪問DynamoDB備份,您需要啟用PITR,PITR提供了可使用各種編程參數來控制的持續備份。

通過在DynamoDB表上配置point_in_time配置,解決該錯誤配置:


  1. resource "aws_dynamodb_table" "basic-dynamodb-table" { 
  2.   name = "GameScores" 
  3.   billing_mode = "PROVISIONED" 
  4.   read_capacity = 20 
  5.   write_capacity = 20 
  6.   hash_key = "UserId" 
  7.   range_key = "GameTitle" 
  8. + point_in_time-recovery = enabled 

確保推送時進行ECR圖像掃描已啟用

Amazon ECR支持使用“常見漏洞和披露”(CVE)數據庫來掃描容器鏡像中的漏洞。 建議您在每次推送時啟用ECR,幫助識別不良鏡像以及將漏洞引入到鏡像中的特定標簽。

ISO27001要求,必須在每次推送時啟用ECR掃描。要修復構建時資源,請將scan_on_push設置為true:


  1. resource "aws_ecr_repository" "foo" { 
  2.   name = "bar" 
  3.   image_tag_mutability = "MUTABLE" 
  4.   image_scanning_configuration { 
  5. + scan_on_push = true 
  6.   } 

確保存儲在SQS隊列中的所有數據已加密

Amazon簡單隊列服務(Amazon SQS)允許對通過每個隊列發送的消息進行加密。通過基于消息的加密來拒絕訪問特定數據,這實現了另一級別的數據訪問管理,并通過進行加密來保護敏感數據。

如果您置身于受監管的市場,比如要遵守醫療界的HIPAA、金融界的PCI DSS和政府界的FedRAMP,需要確保用服務傳遞的敏感數據消息是靜態加密的。

可通過指定SQS用來加密SQS配置塊上數據的KMS密鑰,避免這種錯誤配置。

在Terraform中,設置時間長度(以秒為單位),在該時間長度內Amazon SQS可在再次調用AWS KMS之前重復使用數據密鑰來加密或解密消息。


  1. resource "aws_sqs_queue" "terraform_queue" { 
  2.   name = "terraform-example-queue" 
  3. + kms_master_key_id = "alias/aws/sqs" 
  4. + kms_data_key_reuse_period_seconds = 300 

結論

如您所見,修復IaC錯誤配置常常需要向已經存在的塊添加簡單的缺少的配置參數,或者將不正確的值改為合規狀態。然而,進行這些小的更改可能產生重大影響,因為它們將為將來的部署提供信息。

通過構建時在IaC模板和模塊中實施常見的安全策略,您可以解決現有問題,防止新的錯誤配置被部署。這也是一個好方法,可以節省這方面的時間:新的基礎架構啟用后,揪出生產環境中一再出現的問題。這就是為什么我們認為IaC對于日益關注云的組織而言必不可少。

(責任編輯:dnzg)
森林龙江麻将精华版 今日河北20选5开奖结果查询结果 山西快乐10分开奖结果 ag真人数据 足彩进球彩玩法包含点球吗 浙江快乐12开奖查询 单机捕鱼免费下载 快乐8登录入口 天津快乐10分手机软件 最好的莱特币交易平台 欢乐麻将小游戏大全 闲来麻将怎么进不去 微信双色球 普通职员有必要考mba 瑞波币交易查询 台湾麻将16张3怎么玩 澳门皇冠赌场注册