對 AWS 資源實施監控

對 AWS 資源實施監控

我們有幾個龐大的 AWS 帳戶,我的任務是實施資源監控指南並確保為所有現有和未來的資源設定監控。

有沒有辦法透過呼叫基於資源選項和/或自訂條件的規則來防止資源建立/修改?例如,除非啟用了增強監控,否則不允許建立 RDS 實例,或不允許在沒有某些特定 CloudWatch 警報的情況下建立任何 EC2 執行個體。

我已經研究過政策/護欄,但它似乎不夠強大。在這種情況下其他人使用什麼?

編輯我一直將 AWS Config 視為一種潛在的解決方案,但似乎有許多限制。例如,我能夠審核 RDS 叢集以查看它們是否為某些指標建立了警報,但我無法對 RDS 執行個體執行相同的操作。

答案1

使用 SCP 防止資源創建

在某些情況下,您可以使用服務控制策略來滿足此類要求,但僅與正在建立的資源的屬性相關 - AFAIK 說「如果 CloudWatch 警報沒有出現,您將無法建立 EC2 執行個體」是行不通的。被創建」。

AWS 有一些範例服務控制策略這一頁,我複製一份在下面。我已經使用此技術來執行一些操作,例如在未加密的情況下阻止 EC2 執行個體創建、在 EBS 磁碟區未加密的情況下阻止創建,以及在儲存未加密的情況下阻止 RDS 創建。

來自 Amazon 的 SCP 範例:使用此 SCP,任何不使用 t2.micro 執行個體類型的執行個體啟動都會被拒絕。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "RequireMicroInstanceType",
      "Effect": "Deny",
      "Action": "ec2:RunInstances",
      "Resource": "arn:aws:ec2:*:*:instance/*",
      "Condition": {
        "StringNotEquals":{                 
          "ec2:InstanceType":"t2.micro"
        }
      }
    }
  ]
}

自動修復

您可以考慮在建立資源後自動修復。每次建立資源時,諸如 AWS Config 之類的東西都可以收到通知,執行 Lambda 腳本,然後您可以執行自訂程式碼來偵測狀態並設定相關資源。再說一遍,這是慣例,但我們過去就這樣做過。例如,當建立 S3 儲存桶時,除非有特定標籤,否則我們會開啟日誌記錄和版本控制。

同樣,您可以刪除不合規的資源,而不是自動修復。

使用 IAM 權限阻止資源建立

您可以考慮減少使用者的權限,以便他們無法直接建立資源,並建立某種自助服務系統,為他們設定資源,並設定所有必需的相關資源,而不是刪除不合規的資源,而不是刪除不合規的資源向上。我自己沒有做過這個,所以我不能確切地說如何做。

這可能很簡單,例如允許您提供的 CloudFormation 範本在服務角色下運行,但不允許使用者直接建立資源的權限。

相關內容