嘀嘀~各位云計(jì)算界的小伙伴們~
歡迎乘坐AWS安全直通車!
安全直通車
之“AWS身份認(rèn)證安全”號
安全一直是Amazon Web Services(AWS)的核心主題之一,無論是在云采用框架CAF,還是在Well-architected Framework中。同樣,安全也一直是亞馬遜re:Invent的熱點(diǎn)內(nèi)容,在討論的眾多方面里,AWS身份認(rèn)證安全是企業(yè)IT部署和運(yùn)維中要面臨的首要問題。
在這一類事件中,每一個操作者都不是有意為之,每一個攻擊者也不需要很強(qiáng)的技術(shù)。因此,雖然安全技術(shù)很重要,但是比安全技術(shù)更重要的是安全規(guī)范和安全意識。
接下來小編就告訴你2個常見的不規(guī)范操作,各位小伙伴們可要記住避雷喲~
01 把秘鑰上傳到公網(wǎng),被黑客截取后對賬號進(jìn)行危險操作。(X)
02 對存儲桶設(shè)置了公網(wǎng)讀寫權(quán)限,導(dǎo)致重要信息的泄露。(X)
身份設(shè)置是使用AWS的基礎(chǔ),開始使用AWS之前必須要設(shè)置身份認(rèn)證。本文將歸納總結(jié)如何從身份安全的角度來設(shè)計(jì)應(yīng)用架構(gòu)。AWS中的身份認(rèn)證服務(wù)是AWS Identity and Access Management(AWS IAM),AWS所有的服務(wù)都會使用AWS IAM來決定如何訪問其他的服務(wù)。因此,有必要對身份的安全最佳實(shí)踐進(jìn)行梳理,發(fā)現(xiàn)并修復(fù)資源、賬戶以及整個組織內(nèi)的權(quán)限問題。通過這些安全檢查,可以優(yōu)化組織的AWS身份,擁有更好的安全性。
圍繞AWS身份認(rèn)證的安全實(shí)踐,主要原則包括以下幾點(diǎn):
最小權(quán)限原則
避免在Policy的Action和Resource元素中使用通配符,要避免使用寬泛授權(quán)。
使用多個AWS賬號
根據(jù)環(huán)境類型(開發(fā)、測試、生產(chǎn))等分類創(chuàng)建不同的AWS賬號,這樣就可以清晰地拆分賬單,以及從根本上設(shè)置用戶操作的安全邊界。
創(chuàng)建有意義的
Organizational Unit(OU)結(jié)構(gòu)
當(dāng)組織創(chuàng)建越來越多的AWS賬號時,就需要使用AWS Organization來管理賬號,通過OU對賬號進(jìn)行分組。在使用OU對賬號進(jìn)行分組時,應(yīng)該保證OU能夠反映實(shí)際業(yè)務(wù)、環(huán)境,甚至組織架構(gòu)。另外,AWS Control Tower和AWS Landing Zone兩項(xiàng)服務(wù),可以幫助用戶使用最佳實(shí)踐創(chuàng)建AWS賬號結(jié)構(gòu),并實(shí)施初始安全基線。
使用服務(wù)控制策略
(Service Control Policy,SCP)
當(dāng)認(rèn)真構(gòu)建了OU層級之后,就可以針對整個組織、OU,或者單獨(dú)的成員賬號,設(shè)置SCP,進(jìn)行賬號層面的權(quán)限管控。
使用聯(lián)合身份認(rèn)證
如果組織已有企業(yè)目錄,那么建議使用其對AWS賬號進(jìn)行聯(lián)合身份認(rèn)證。這樣,就可以避免在云上再單獨(dú)維護(hù)一份身份清單,并且避免創(chuàng)建長期身份,即IAM User。
使用Role
要使用聯(lián)合身份認(rèn)證,需要創(chuàng)建Role,以保證聯(lián)合權(quán)限只在Role的過期時間內(nèi)有效。另外,Role應(yīng)該用于運(yùn)行在AWS環(huán)境上的應(yīng)用的授權(quán),這樣就不需要創(chuàng)建并分發(fā)長期秘鑰。同時,Role也應(yīng)該用于跨賬號訪問的授權(quán),避免為第三方應(yīng)用創(chuàng)建組織賬號內(nèi)的長期權(quán)限。
清楚定義信任策略
(Trust Policy)
信任策略定義了誰(Principal)可以使用某個Role。Principal可以是用戶、另一個Role、賬號,或者Identity Provider。當(dāng)使用Role進(jìn)行授權(quán)的時候,注意要清楚定義使用Role的Principal,避免使用星號,如sts:assumerole:*。
盡量避免使用長期秘鑰
在必須創(chuàng)建Access Key的情況下要保證密鑰的安全,應(yīng)當(dāng)遵循如下五點(diǎn):
1)對Access Key設(shè)置IP白名單授權(quán),保證只能從授權(quán)的服務(wù)器使用;
2)不要把密鑰硬編碼到代碼里;
3)定時Rotate Access Key;
4)不要以明文發(fā)送Access Key,應(yīng)當(dāng)加密文件,然后將文件和解密密碼分兩封郵件發(fā)送;
5)不要把Access Key上傳到GitHub等公網(wǎng)環(huán)境。
保證root用戶的安全
除了一些特殊操作之外,永遠(yuǎn)不要使用root用戶,尤其不應(yīng)該使用root進(jìn)行日常的運(yùn)維操作。同時,在實(shí)踐中應(yīng)當(dāng)遵循:
1)刪除Access Keys;
2)使用SCP限制root權(quán)限;
3)啟用Multi-factor Authentication(MFA);
4)設(shè)置強(qiáng)密碼,并定期修改密碼;
5)將root用戶郵箱設(shè)置為組郵箱,便于root找回。
保證IAM User安全
如果組織暫時無法使用聯(lián)合身份認(rèn)證,則需要在AWS創(chuàng)建User,應(yīng)當(dāng)遵循:
1)創(chuàng)建IAM Group,按照不同的用戶角色對用戶進(jìn)行分組;
2)設(shè)置強(qiáng)密碼策略,并定期修改密碼;
3)為每個人創(chuàng)建單獨(dú)的用戶,不能多人共用User;
4)用戶登錄使用MFA;
5)使用AWS Config審查沒有設(shè)置MFA的用戶;
6)避免為個人用戶創(chuàng)建秘鑰,使用CloudShell。
定期檢查Policy設(shè)置
在最初設(shè)置Policy的時候使用IAM Policy Simulator模擬Policy的權(quán)限,以保證最小權(quán)限。之后使用IAM Access Advisor持續(xù)查看一定時間內(nèi)沒有被訪問過的服務(wù),然后在SCP中禁用這些服務(wù)。
定期檢查未使用的身份
通過Credential Report檢查一定時間內(nèi)沒有使用過的Identity(Role、Access Key、User),并且將其禁用或者刪除。
定期檢查與第三方賬號
共享的權(quán)限
AWS IAM Access Analyzer支持分析基于資源的策略,例如Amazon S3存儲桶、SQS Queue、IAM角色。這樣,組織就可以識別對資源和數(shù)據(jù)的計(jì)劃外訪問,而這種訪問可能會造成安全風(fēng)險。
設(shè)置審計(jì)
對整個組織開啟CloudTrail,并且將CloudTrail日志存儲到單獨(dú)賬號,以避免用戶刪除操作記錄。同時,運(yùn)維人員應(yīng)該熟悉使用Athena等服務(wù)查詢CloudTrail日志的方式。
上述建議從賬號管理到用戶管理,從最小權(quán)限原則到操作審計(jì),都需要認(rèn)真落實(shí)。讓組織內(nèi)每一個人都規(guī)范操作,建立起安全意識,預(yù)防安全事故的出現(xiàn)。聚云科技深知安全的重要性,因此從一開始就會對客戶進(jìn)行安全培訓(xùn),并定期與客戶溝通對配置進(jìn)行巡檢,保證客戶賬號環(huán)境的安全。
下圖是對如上原則的總結(jié)以及各原則之間的關(guān)系,便于組織進(jìn)行安全巡檢: