避免構(gòu)建時常見的這五個AWS配置不當(dāng)

來源: 百家號
作者:51CTO
時間:2020-10-22
17152
本文分析了實際環(huán)境中的IaC模塊最常見的亞馬遜網(wǎng)絡(luò)服務(wù)(AWS)安全錯誤。

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

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

b3119313b07eca8043ed9192bef5e2daa044833c.jpg

確保存儲在S3存儲桶中的所有數(shù)據(jù)安全地靜態(tài)加密

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

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

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

server_side_encryption_configuration{

rule{

apply_server_side_encryption_by_default{

sse_algorithm="AES256"

}

}

}

確保存儲在Launch Configuration EBS中的所有數(shù)據(jù)已安全加密

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

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

讓您的數(shù)據(jù)保持靜態(tài)加密可確保未經(jīng)授權(quán)的人無法訪問。PCI-DSS也要求遵守該策略。為防止Terraform模塊中出現(xiàn)該AWS錯誤,確保為EBS Launch Configurations啟用了加密:

resource"aws_launch_configuration""as_conf"{

name_prefix="terraform-lc-example-"

image_id=data.aws_ami.ubuntu.id

instance_type="t2.micro"

+encrypted=enabled

確保對客戶創(chuàng)建的CMK進行輪換已啟用

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

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

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

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

resource"aws_kms_key""kms_key_1"{

description="kms_key_1"

deletion_window_in_days=10

key_usage="ENCRYPT_DECRYPT"

is_enabled=true

+enable_key_rotation=true

}

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

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

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

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

resource"aws_dynamodb_table""basic-dynamodb-table"{

name="GameScores"

billing_mode="PROVISIONED"

read_capacity=20

write_capacity=20

hash_key="UserId"

range_key="GameTitle"

+point_in_time-recovery=enabled

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

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

ISO27001要求,必須在每次推送時啟用ECR掃描。要修復(fù)構(gòu)建時資源,請將scan_on_push設(shè)置為true:

resource"aws_ecr_repository""foo"{

name="bar"

image_tag_mutability="MUTABLE"

image_scanning_configuration{

+scan_on_push=true

}

}

確保存儲在SQS隊列中的所有數(shù)據(jù)已加密

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

如果您置身于受監(jiān)管的市場,比如要遵守醫(yī)療界的HIPAA、金融界的PCI DSS和政府界的FedRAMP,需要確保用服務(wù)傳遞的敏感數(shù)據(jù)消息是靜態(tài)加密的。

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

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

resource"aws_sqs_queue""terraform_queue"{

name="terraform-example-queue"

+kms_master_key_id="alias/aws/sqs"

+kms_data_key_reuse_period_seconds=300

}

結(jié)論

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

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

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于百家號,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點,不代表快出海對觀點贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家