使用IAM保护您的AWS基础架构
在開發新產品并發現合適的產品市場時,每個團隊都需要快速行動。 尤其是初創公司,因為公司的整個未來都取決于快速找到為您的產品付款的人。
對于初創企業和其他團隊來說, Amazon Web Services是令人難以置信的工具,可以快速構建其應用程序和基礎架構。 這些團隊通常具有比適當的系統操作更強大的開發背景。
AWS提供了出色的工具來處理密鑰,身份驗證和安全性,但是由于經常出現更為緊迫的問題,因此許多團隊并未對此進行研究。
我們想介紹幾個概念和功能,這些功能將幫助您以最小的努力提高基礎架構的安全性。
身份和訪問管理(IAM),AWS安全的核心
IAM(身份和訪問管理)是AWS安全系統的核心。 它使您可以管理基礎架構中的用戶,組和不同角色。 您可以創建具有不同權限的不同功能組,并將人員添加到這些組中。 這樣,一旦人們移入其他組并且不再需要訪問系統的每個部分,就可以輕松更改權限。
您可以將多個策略附加到用戶,組或角色,以涵蓋對不同AWS服務或不同資源的訪問。
IAM文檔易于閱讀,并且瀏覽一遍絕對很有趣。 它以HTML,PDF或Kindle的形式提供,因此您甚至可以在上下班途中閱讀。
不要使用提供給您的AWS賬戶的默認密鑰
您可以對AWS采取的第一個也是最重要的措施是不使用提供給您的AWS賬戶的默認密鑰。 該密鑰具有對每個系統的完全訪問權限。 這是一個主要的安全問題,因為泄露此密鑰將意味著您使其他人可以訪問基礎結構的每個部分。 此外,隨著時間的流逝,很難確定在基礎架構中使用密鑰的位置,因此,一旦要更改密鑰,就必須在沒有任何指針的情況下搜索所有基礎架構。
為應用程序的不同用途創建用戶或組使該部分可以進行自我記錄,因此,每當要更改密鑰時,您都知道基礎結構的哪一部分。
為每個人創建一個用戶帳戶
第一步,不建議登錄到主要AWS賬戶。 團隊中需要訪問AWS的每個人都應該使用不同的憑據獲得自己的賬戶。 通過將這些用戶添加到特定的組中,您可以輕松添加或刪除權限,而不會丟失誰可以執行的操作。 不要對特定用戶設置權限,而是為該權限創建一個組,因為它是自記錄文檔,可以為每個人更改。 在下圖中,我們為管理員,財務和API訪問創建了不同的組。
我們財務組中的用戶只能訪問我們的帳單。 即使萬一他們的帳戶被盜,也無法訪問任何基礎架構。
保護用戶帳戶的第二個重要步驟是對所有用戶帳戶啟用兩因素身份驗證。 登錄到系統并有權訪問重要資源的每個人都需要啟用兩個因素。 作為管理員,您可以檢查IAM的用戶詳細信息頁面中是否啟用了兩個因素。 您可以立即為團隊中的每個新員工啟用此功能。
例如,以下用戶未啟用兩個因素。 通過添加它并遵循向導,可以大大提高安全性。
對具有指定功能的角色使用多個鍵
如前所述,您永遠不要使用您的AWS賬戶的主鍵來訪問API。 這并不意味著只創建一個管理員用戶并在任何地方使用此密鑰。
用戶,組和角色應僅具有完成一項特定任務所需的特定權限。 不要混在一起。 也許您將來希望將任務放置到另一臺服務器上。 如果您組合了權限,則必須將其分成不同的組或角色。 您確實應該將這些與一開始區別開。
不要在EC2實例中使用密鑰
IAM鮮為人知的功能是角色以及如何將其連接到基礎結構的不同部分。 例如,如果您有一個應能夠讀取數據或將數據上傳到S3的應用服務器。 過去,您可能已將AWS機密和訪問密鑰添加到計算機中,因此它可以使用它們來訪問S3。
相反,您可以創建一個角色,該角色包括上載到特定S3存儲桶的權限,并將EC2實例設置為使用此角色。 如果您將AWS開發工具包的不同語言使用,它們將自動生成具有與角色中定義的相同權限的臨時密鑰。
在IAM中創建角色
首先,您需要在IAM for EC2中創建一個新角色。 您可以為Opsworks之類的不同服務創建角色,這些角色可以為您調用AWS API。
然后創建一個策略,讓您訪問特定的S3存儲桶
將以下策略導入向導:
{"Version": "2012-10-17","Statement": [{"Sid": "Stmt1385708770000","Effect": "Allow","Action": ["s3:Get*","s3:List*","s3:DeleteObject","s3:PutObject","s3:PutObjectAcl","s3:PutObjectVersionAcl"],"Resource": ["arn:aws:s3:::testbucket/*","arn:aws:s3:::testbucket"]}] }這將只允許對testbucket進行讀寫訪問,而不能訪問其他S3存儲桶。 您可以在IAM文檔中閱讀有關政策的更多信息。 您可以將策略限制為具有ARN,Amazon資源名稱的特定實例,存儲桶或其他基礎結構項目,就像我們在上述示例中對testbucket所做的那樣。 AWS擁??有有關ARN的大量文檔
現在,我們想將角色連接到EC2實例。 每當您啟動一個新實例時,都將該實例的IAM角色設置為我們剛剛創建的角色。
在這里,我們將角色設置為checkbot
現在,無論何時調用AWS API,您都無需提供任何密鑰,因為它們將自動為您創建具有正確權限的密鑰。 從現在開始,實例內部不再需要任何鍵,這使整個設置更加簡潔和易于使用。
啟用Cloudtrail
Cloudtrail是一項去年11月在AWS:reInvent上發布的新服務。 它將自動將對AWS API的每次調用記錄到S3存儲桶中。 這可以幫助將來進行審核。
只需單擊幾下即可完成不到30秒的設置,幾乎不需要花任何費用(您只需為S3存儲桶付費,而無需為Cloudtrail付費),并可以在將來為您節省資金。 去做就對了!
結論
AWS是一個龐大而復雜的系統,但提供了輕松的第一步來實現您的產品和安全性。 您可以遵循一些步驟和實踐來大量提高安全性,而無需付出太多努力。 當然,從長遠來看,您需要投資于安全性,并且從閱讀IAM文檔開始是一個好的開始。
作為初創公司,我們希望快速發展,制造產品并交付給我們的客戶。 所有這些對于啟動公司來說都是必要且重要的。 通過一些簡單的修補程序,您可以盡早提高安全性,從而不會由于可預防的原因而泄漏客戶數據。
船長而繁榮!
更多的信息
- 我希望在開始之前知道的AWS技巧
- AWS上的旋轉憑證文檔
- Trevor Rowe的憑證管理博客文章
- AWS的權限和策略文檔
- Amazon資源名稱文檔
翻譯自: https://www.javacodegeeks.com/2014/03/securing-your-aws-infrastructure-with-iam.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的使用IAM保护您的AWS基础架构的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 百川智能发布Baichuan 2,文理兼
- 下一篇: 历史上的花木兰 花木兰历史背景