加入星計劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴散
  • 作品版權(quán)保護
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長期合作伙伴
立即加入
  • 正文
  • 推薦器件
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

解讀通過亞馬遜云科技Amazon EC2設(shè)計并自動化堡壘機的實現(xiàn)

2023/10/08
2995
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

?背景

?在很多企業(yè)的實際應(yīng)用場景中,特別是金融類的客戶,大部分的應(yīng)用都是部署在私有子網(wǎng)中,如何能夠讓客戶的開發(fā)人員和運維人員從本地的數(shù)據(jù)中心中安全的訪問云上資源,堡壘機是一個很好的選擇。傳統(tǒng)堡壘機的核心實現(xiàn)原理是基于SSH協(xié)議的安全連接,通常運用SSH(Secure Shell)協(xié)議實現(xiàn)數(shù)據(jù)的加密通信。SSH為安全身份驗證和數(shù)據(jù)加密提供了可靠保障,從而確保了連接的安全性。然而,傳統(tǒng)的自建堡壘機在其管理和運維方面面臨著多種挑戰(zhàn):

  • 部署與維護復(fù)雜性:自建堡壘機的部署和配置往往涉及多個復(fù)雜步驟和組件,導(dǎo)致管理和維護的工作量顯著增加。
  • 安全性風(fēng)險:自行管理多個密鑰和憑證可能會增加安全漏洞的風(fēng)險。若密鑰管理不當(dāng),可能導(dǎo)致未經(jīng)授權(quán)的訪問。
  • 可用性問題:自建堡壘機常常無法實現(xiàn)高可用性和彈性,多用戶同時訪問時可能出現(xiàn)性能問題,影響用戶體驗。
  • 擴展困難:隨著用戶數(shù)量和需求的增加,自建堡壘機可能難以靈活擴展,導(dǎo)致資源分配不均。
  • 更新和升級:自建堡壘機需要定期進行更新和升級,以保持安全性和性能,然而這可能會導(dǎo)致業(yè)務(wù)中斷或不穩(wěn)定情況。
  • 外網(wǎng)暴露:傳統(tǒng)堡壘機需要在云上環(huán)境中部署一個有外網(wǎng)訪問的權(quán)限的機器,增加了被攻擊的風(fēng)險。

?與傳統(tǒng)方式不同,基于Amazon Systems Manager Session Manager的堡壘機通過建立雙向加密通道,連接客戶端和遠程節(jié)點,并采用TLS 1.2進行流量加密和Sigv4簽名請求。這一方式具備顯著優(yōu)勢:

  • 一鍵式部署:該方案極大簡化了堡壘機部署流程,從而減少了部署難度和運維成本。
  • 卓越安全性:Session Manager提供了加密和身份驗證功能,保障連接的安全性。

?a. 基于AWS Identity and Access Management(IAM)角色的最小權(quán)限原則,管理員能夠通過集中的IAM策略管理堡壘機的訪問授權(quán)。

?b. 無需管理堡壘機密鑰。

?c. 支持云上私有子網(wǎng)部署,無需部署在公有子網(wǎng)中,且無需打開入站端口。

  • 高可用性:通過彈性伸縮功能實現(xiàn)了堡壘機的跨可用區(qū)高可用性。
  • 可擴展性:基于CPU利用率的彈性伸縮策略能夠自動調(diào)整容量,以適應(yīng)不同流量訪問的需求。
  • 簡化管理:Systems Manager Session Manager是一項無需用戶自行管理實例的托管服務(wù)。無需預(yù)先啟動實例,也無需將實例直接暴露在公網(wǎng)上,從而降低了管理復(fù)雜性。
  • 端口轉(zhuǎn)發(fā)與跨平臺支持:通過Session Manager,可在本地客戶端進行遠程節(jié)點端口轉(zhuǎn)發(fā),并實現(xiàn)連接。同時,它對Linux、Windows、Mac等多種操作系統(tǒng)平臺提供了跨平臺訪問支持。
  • 全面的日志記錄與審計:Session Manager支持多種方式進行日志記錄,涵蓋登錄時間、命令執(zhí)行等內(nèi)容,以確保會話連接活動得到完整記錄。這些記錄可用于審計和故障排除。
  • 提供監(jiān)控告警功能:針對堡壘機的性能指標進行監(jiān)控告警,以便在性能異常時及時收到通知。

?基于Session Manager的堡壘機為訪問管理提供了高效、安全、高可用的解決方案,成為提升操作效率和保障安全性的理想選擇。堡壘機作為一種安全措施,允許用戶通過中間主機來訪問位于私有子網(wǎng)中的實例或資源。它作為一座橋梁,幫助用戶在安全的環(huán)境下連接到內(nèi)部資源,同時減少對直接連接的需求,從而降低被攻擊的風(fēng)險。對于企業(yè)的安全管理員來說,堡壘機可以增強安全性、簡化網(wǎng)絡(luò)配置、降低網(wǎng)絡(luò)資源暴露風(fēng)險、提供審計跟蹤,對于開發(fā)運維人員來說,他們可以在本地環(huán)境中使用熟悉的開發(fā)、運維工具,如數(shù)據(jù)庫客戶端、瀏覽器、RDP等去訪問云上私有資源,大大提高生產(chǎn)效率。

?本文主要闡述的是基于Amazon Systems Manager的Session Manager特性和Amazon EC2堡壘機的設(shè)計和實現(xiàn)。主要內(nèi)容包括堡壘機的架構(gòu)設(shè)計、安全設(shè)計、日志監(jiān)控設(shè)計、高可用彈性設(shè)計以及自動化部署設(shè)計等,同時針對堡壘機在不同場景中的使用方式和腳本進行舉例說明。

??云上堡壘機設(shè)計

?安全設(shè)計

?在進行云上堡壘機設(shè)計時,安全是第一個需要考慮的要求。Session Manager是一種無需通過公網(wǎng)IP或SSH密鑰來連接到EC2實例的服務(wù),它通過Systems Manager的控制臺或CLI來創(chuàng)建和管理安全的交互式會話。其安全設(shè)計主要考慮以下四點:

  • IAM權(quán)限和訪問控制:

?Session Manager權(quán)限:確保只有授權(quán)的用戶或角色擁有使用Session Manager的權(quán)限。為用戶或角色分配適當(dāng)?shù)腎AM策略,限制其對Session Manager的訪問,一般情況下,通過與客戶已有的AD進行集成,通過分組來控制啟動Session Manager的權(quán)限。

?多因素認證(MFA):強制啟用多因素認證,增加用戶身份驗證的安全性。

  • VPC和子網(wǎng)安全性:

?控制對Session Manager的網(wǎng)絡(luò)訪問:設(shè)置VPC Endpoints的安全組僅允許來自堡壘機及私有子網(wǎng)中主機的訪問,并且設(shè)置VPC Endpoints的策略,以限制特定受信任實體才能訪問。

  • 日志和審計:

?監(jiān)控Session Manager會話:啟用CloudTrail以記錄Session Manager的API調(diào)用活動,以便審計和監(jiān)控用戶對會話的操作;配置Session Manager參數(shù),發(fā)送會話日志到Amazon CloudWatch日志組和S3存儲桶,確保用戶在會話中的所有操作均被記錄,CloudWatch日志組中的數(shù)據(jù)將保存3個月,S3桶中的會話日志將持久存儲以滿足安全監(jiān)管和審計需求。同時,通過腳本來實現(xiàn)對本地Session Manager插件SSH登錄上的操作進行詳細記錄,并存儲在指定的存儲桶中。

  • 安全加密:

?加密各類堡壘機相關(guān)資源:使用Amazon Key Management Service(KMS)對Session Manager的會話進行加密,加密Amazon CloudWatch日志組及S3存儲桶,以確保會話和日志的安全性。

?高可用和彈性設(shè)計

?堡壘機的高可用設(shè)計可以確保在發(fā)生故障或負載增加時,堡壘機仍然能夠保持可用,并繼續(xù)提供安全的訪問控制。

  • 堡壘機的高可用性

?使用Auto Scaling Group(ASG):配置堡壘機所在的EC2實例為一個Auto Scaling Group。當(dāng)堡壘機實例的負載增加時,ASG會根據(jù)設(shè)置的擴展規(guī)則自動增加實例數(shù)量,保持高可用性。

?設(shè)置負載均衡:當(dāng)多個堡壘機實例同時運行時,可以使用負載均衡器來分發(fā)流量,確保各個實例的負載均衡。負載均衡器還可以在某些實例出現(xiàn)故障時自動將流量路由到其他健康的實例,提高了整體的可用性。

  • 定時擴展和縮減

?通過Auto Scaling Group的定時規(guī)則,控制堡壘機的啟動和關(guān)機時間,從而來節(jié)約堡壘機的費用。

?監(jiān)控告警設(shè)計

?Amazon CloudWatch指標監(jiān)控:CloudWatch可以監(jiān)控EC2實例和其他亞馬遜云資源的性能指標。可監(jiān)控實例的CPU使用率、內(nèi)存利用率、磁盤等關(guān)鍵指標。并通過Amazon SNS服務(wù)設(shè)置報警,以便在性能異常時及時收到通知。

?自動化部署設(shè)計

?堡壘機代碼設(shè)計

?考慮到堡壘機的高可用設(shè)計,在其中一臺機器宕機的情況下,可以自動、快速的拉起一臺新的堡壘機以供使用,我們采取EC2 launch template的方式進行堡壘機的構(gòu)建,以下是IaC樣例代碼:

  1. 通過彈性伸縮啟動模版創(chuàng)建堡壘機的IaC代碼樣例,包含啟動模版、彈性伸縮組、彈性規(guī)則等。

2.定義堡壘機的EC2用戶數(shù)據(jù)代碼樣例

?在創(chuàng)建堡壘機時,不僅僅是單獨的創(chuàng)建一臺EC2的實例,還需要針對用于該EC2的實例進行安全加固、安裝相應(yīng)的工具、設(shè)置對于堡壘機的監(jiān)控等功能,以下是IaC代碼中,用于EC2實例初始化的用戶數(shù)據(jù)(User Data)樣例。

3.設(shè)計和創(chuàng)建堡壘機安全組

?根據(jù)Session Manager安全組的最佳實踐,本方案中堡壘機的安全組設(shè)計如下:

?IaC代碼設(shè)計樣例如下:

?

?

?

?Session Manager配置設(shè)計

?在啟用Session Manager時,需要對Session Manager進行相關(guān)的配置,如是否開啟Session加密,是否將日志存儲到CloudWatch Logs或者S3上,是否對日志進行加密,最大的Session時長等。我們通過創(chuàng)建SSM Documents的方式來進行配置,如以下IaC樣例代碼所示:

?

?

?堡壘機IAM角色設(shè)計

?在本設(shè)計中,堡壘機的IAM角色主要包含以下權(quán)限:

  • AmazonSSMManagedInstanceCore
  • CloudWatchAgentServerPolicy
  • Logs部分權(quán)限
  • SSM Messages部分權(quán)限
  • S3部分權(quán)限
  • KMS部分權(quán)限

?如需自定義更多Session Manager IAM角色的詳細可訪問:自定義Session Manager IAM角色

?以下是IaC代碼樣例:

?

?

?

?部署堡壘機

?本章將介紹如何通過基礎(chǔ)設(shè)施即代碼(Infrastructure as code)的方式一鍵式構(gòu)建云上堡壘機,通過Terraform進行相應(yīng)的IaC代碼開發(fā)。

?堡壘機部署架構(gòu)圖

?根據(jù)云上堡壘機的設(shè)計,我們在堡壘機的部署中,將使用到亞馬遜云上的多種服務(wù):如Amazon CloudWatch、Key Management Service(KMS)、Identity and Access Management(IAM)、Systems Manager、Amazon Simply Notification Service(SNS)、Amazon Simple Storage Service(S3)、Amazon PrivateLink、Amazon EC2以及Amazon EC2 Auto Scaling等,以下為部署架構(gòu)圖:

?以下對部署中所使用到的主要亞馬遜云相關(guān)服務(wù)的用途進行簡單介紹:

  • Amazon EC2/Amazon EC2 Auto Scaling:在EC2上進行堡壘機的部署,并通過AutoScaling確保堡壘機的高可用;
  • Amazon Simple Storage Service(S3):用于存放通過Session Manager和SSH登錄到堡壘機上所產(chǎn)生的操作日志信息;
  • Amazon VPC endpoints:用于堡壘機在沒有外網(wǎng)訪問的條件下,進行安全的訪問如Amazon CloudWatch(Logs/Monitoring)、Amazon S3、Systems Manager、Amazon KMS等服務(wù);
  • Amazon CloudWatch:用于存放通過控制臺的Session Manager功能訪問堡壘機的操作日志存儲;
  • Amazon KMS:用于加密堡壘機部署過程中的相關(guān)服務(wù),如Session加密、CloudWatch logs加密、S3桶加密等;
  • Amazon Simply Notification Service:用于接受Bastion Host在CPU/Memory/磁盤超過閾值的時候的告警信息。

?需要創(chuàng)建的Endpoints列表:

?堡壘機自動化部署

?當(dāng)IaC代碼開發(fā)完成后,可以將該代碼集成在其他資源的CICD pipeline中,也可以通過Terraform命令,直接進行部署。

?

?等到命令執(zhí)行完成后,登錄到亞馬遜云科技管理控制臺檢查相應(yīng)資源是否按照預(yù)期部署完成。

?

?堡壘機使用場景

?堡壘機使用前置條件

?如果要在本地機器上使用堡壘機,需要滿足以下條件:

  • 確保亞馬遜云上堡壘機已經(jīng)部署完成,并且處于running狀態(tài);
  • 確保網(wǎng)絡(luò)聯(lián)通性,確認堡壘機能訪問私網(wǎng)環(huán)境中的RDS數(shù)據(jù)庫、WebServer EC2等;
  • 確保你本地使用的IAM角色至少具有以下權(quán)限:
  • ec2:DescribeInstances
  • ssm:StartSession
  • ec2-instance-connect:SendSSHPublicKey
  • 確保本地環(huán)境中正確安裝了亞馬遜云命令行工具(CLI V2)和Session Manager插件

?堡壘機使用場景實操

?假設(shè)客戶在亞馬遜云上的私有子網(wǎng)中,部署了一個Web應(yīng)用,包含Web前端和服務(wù)后端以及RDS數(shù)據(jù)庫(以SQL Server為例)。該客戶對于安全性的要求非常高,云上VPC環(huán)境中沒有Internet訪問,也沒有在本地網(wǎng)絡(luò)與云上環(huán)境之間搭建專線直連(Direct Connect)和VPN。但客戶的開發(fā)人員和運維人員,要求提供一個安全、高效、可靠的方式從本地的客戶端、應(yīng)用程序、瀏覽器去訪問云上資源,以提高開發(fā)、運維效率。下圖為堡壘機實操環(huán)境的部署示意圖:

?場景一:通過亞馬遜云科技管理控制臺/命令行登錄堡壘機

?在這個場景中,開發(fā)人員或者運維人員通過公司AD集成的賬號拿到了相應(yīng)的角色權(quán)限,直接登錄到亞馬遜云的管理控制臺,然后通過Session Manager直接連接到堡壘機上進行操作。操作步驟如下:

?方式一:直接進入到EC2控制臺,選擇堡壘機,然后點擊“Connect”進行連接

?方式二:進入到Systems Manager→Session Manager→Start Session,然后選擇堡壘機進行連接

?兩種方式登錄后,進入的界面如下圖所示:

?或者在本地啟動SSM Session Manager的插件,從本地電腦中,直接訪問堡壘機:

?

?通過控制臺或者本地CLI進入到堡壘機后,所有的操作都會被記錄到Amazon CloudWatch Log Group“/aws/sessionmanager”,日志保留時間為3個月,并且還會上傳到S3桶(S3桶名:bastion-audit-log-bucket-,路徑為:ssm/)中做持久化存儲。

?場景二:通過堡壘機實現(xiàn)遠程主機端口轉(zhuǎn)發(fā)

?在該場景中,開發(fā)人員或者運維人員通過公司AD集成的賬號拿到了相應(yīng)的角色權(quán)限,然后在本地啟動Session Manager插件來進行遠程主機的端口轉(zhuǎn)發(fā),通過這種方式,開發(fā)人員或運維人員可以方便的使用本地客戶端進行操作云上資源,如訪問云上數(shù)據(jù)庫和訪問WebServer等。以下命令是啟動如何在本地機器上實現(xiàn)遠程主機端口轉(zhuǎn)發(fā):

?(1)遠端數(shù)據(jù)庫端口轉(zhuǎn)發(fā)

?以在本地訪問云上SQLServer數(shù)據(jù)庫為例子,端口號為1433,本地端口號為12345,遠程主機DNS為:“bastion-test-db.xxxxx..rds.amazonaws.com”,啟動后,如下圖所示:

?打開本地SQLServer客戶端,輸入RDS Server端地址和端口:“127.0.0.1,12345”,并輸入登錄數(shù)據(jù)庫的賬號和密碼,如下圖所示:

?點擊“Connect”,即可訪問云上RDS數(shù)據(jù)庫并進行操作:

?(2)遠端服務(wù)器端口轉(zhuǎn)發(fā)

?以本地通過瀏覽器訪問Web Server為例,端口號為80,本地端口號為8080,遠程主機IP為:“10.99.3.132”,啟動后,如下圖所示:

?通過本地瀏覽器訪問127.0.0.1:8080,可看到能夠成功訪問到位于私有網(wǎng)絡(luò)中的WebServer:

?場景三:通過本地SSH連接到堡壘機

?在開發(fā)人員或者運維人員在實際工作中,偶爾會需要通過SSH連接到堡壘機或者遠端的主機上進行調(diào)試或者運維,并上傳相應(yīng)的文件到堡壘機上。一般情況下,運維人員需要拿到EC2的密鑰并確保安全組中包含有22端口及客戶端的IP地址的入站規(guī)則,然后才能連接到云上服務(wù)器上,這種情況不僅增加了密鑰管理的難度,同時對于只存在私有網(wǎng)絡(luò)中的服務(wù)器且本地數(shù)據(jù)中心和云上環(huán)境沒有互聯(lián)的場景是一個很大的挑戰(zhàn)。通過ec2-instance-connect服務(wù)特性并結(jié)合Session Manager可以方便的滿足客戶通過SSH訪問云上EC2的情景。

?將以上代碼中的Step1到Step3編寫成一個腳本,在每次執(zhí)行ssh之前,先運行該腳本,確保新生成的SSH Key有效(通過send-ssh-public-key上傳到EC2上的Key有效期只有60s)。

?注意:如果使用動態(tài)生成SSH Key的方式,需要先創(chuàng)建“EC2 Instance Connect Endpoint”,同時確保本地電腦上使用的IAM角色包含有“ec2-instance-connect:SendSSHPublicKey”的權(quán)限。另外,亞馬遜云科技中國區(qū)暫時不支持該Endpoint類型的創(chuàng)建。

?通過本地Session Manager插件SSH進入到堡壘機后,所有的操作都會上傳到S3桶(S3桶名:bastion-audit-log-bucket-,路徑為:logs/)中做持久化存儲。

?除通過SSH登錄到堡壘機外,SSM還可以支持SSH Socks Proxy,如下圖在瀏覽器中設(shè)置Proxy(以Firefox為例):

?使用以下代碼啟動 SSH Socks Proxy:

?

?啟動后,就可以通過Socks Proxy訪問內(nèi)網(wǎng)的WebServer。

??未來架構(gòu)演進

?本方案中堡壘機是根據(jù)最常用的功能,如端口轉(zhuǎn)發(fā)、SSH訪問來設(shè)計的,但在一些特定的場景中,還需要設(shè)計更多復(fù)雜的堡壘機方案,如:Windows類型的堡壘機支持、如何使用IAM角色對堡壘機權(quán)限進行更精細化的管理等,這些都是未來本方案演進和增強的一個方向。目前我們方案中,創(chuàng)建的堡壘機類型只有一種,任何擁有啟動Session Manager的IAM用戶/角色都可以去訪問它并進行操作,但在一些場景下,客戶需要對于不同的角色使用不同的堡壘機:如角色A僅可以訪問堡壘機A,并通過該堡壘機上賦予的IAM權(quán)限進行相應(yīng)的操作;角色B僅可以訪問堡壘機B,通過該堡壘機上賦予的IAM權(quán)限進行相應(yīng)的操作。不同的用戶角色和客戶自有的AD域控進行集成,可以靈活的進行更精細化的權(quán)限控制。

?總結(jié)

?本文主要介紹了基于Amazon Systems Manager Session Manager的堡壘機的設(shè)計和實現(xiàn),并通過IaC自動化方式構(gòu)建和部署云上堡壘機,同時基于堡壘機的使用場景進行了舉例,介紹了不同場景下堡壘機的使用方法和步驟。該堡壘機方案已經(jīng)集成到Cloud Foundations快速啟動包服務(wù)中,為企業(yè)用戶提供更便捷的部署方式。

?在安全方面做的同樣出色的亞馬遜云科技Amazon Lightsail和亞馬遜云科技Amazon CodeWhisperer也非常實用。

?亞馬遜云科技Amazon Lightsail可以在Amazon EC2上拓展和遷移,其安全性背靠亞馬遜云科技。亞馬遜云科技Amazon CodeWhisperer可以對現(xiàn)有的代碼進行實時的檢測,給予一定的建議,所以構(gòu)建應(yīng)用程序時更加的安全。對于企業(yè)或開發(fā)者,亞馬遜云科技Amazon Lightsail和亞馬遜云科技Amazon CodeWhisperer的安全性對工作構(gòu)建、架構(gòu)設(shè)計等全套工作流都非常重要。

推薦器件

更多器件
器件型號 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊 ECAD模型 風(fēng)險等級 參考價格 更多信息
LE88276DLCT 1 Microsemi Corporation Analog Transmission Interface,
$33.67 查看
AD73311ARSZ-REEL 1 Rochester Electronics LLC SPECIALTY TELECOM CIRCUIT, PDSO20, SSOP-20
$9.29 查看
KSZ9031RNXCA-TR 1 Microchip Technology Inc DATACOM, ETHERNET TRANSCEIVER, QCC48

ECAD模型

下載ECAD模型
$105.81 查看
亞馬遜

亞馬遜

亞馬遜公司(Amazon,簡稱亞馬遜;NASDAQ:AMZN),是美國最大的一家網(wǎng)絡(luò)電子商務(wù)公司,位于華盛頓州的西雅圖。是網(wǎng)絡(luò)上最早開始經(jīng)營電子商務(wù)的公司之一,亞馬遜成立于1994年,一開始只經(jīng)營網(wǎng)絡(luò)的書籍銷售業(yè)務(wù),現(xiàn)在則擴及了范圍相當(dāng)廣的其他產(chǎn)品,已成為全球商品品種最多的網(wǎng)上零售商和全球第二大互聯(lián)網(wǎng)企業(yè),在公司名下,也包括了AlexaInternet、a9、lab126、和互聯(lián)網(wǎng)電影數(shù)據(jù)庫(Internet Movie Database,IMDB)等子公司。

亞馬遜公司(Amazon,簡稱亞馬遜;NASDAQ:AMZN),是美國最大的一家網(wǎng)絡(luò)電子商務(wù)公司,位于華盛頓州的西雅圖。是網(wǎng)絡(luò)上最早開始經(jīng)營電子商務(wù)的公司之一,亞馬遜成立于1994年,一開始只經(jīng)營網(wǎng)絡(luò)的書籍銷售業(yè)務(wù),現(xiàn)在則擴及了范圍相當(dāng)廣的其他產(chǎn)品,已成為全球商品品種最多的網(wǎng)上零售商和全球第二大互聯(lián)網(wǎng)企業(yè),在公司名下,也包括了AlexaInternet、a9、lab126、和互聯(lián)網(wǎng)電影數(shù)據(jù)庫(Internet Movie Database,IMDB)等子公司。收起

查看更多

相關(guān)推薦