簡體   English   中英

AWS EC2安全策略-將用戶限制為某些實例

[英]AWS EC2 security policies - Restricting users to certain instances

因此,我正在嘗試在AWS上部署幾個EC2實例。 我系統中每個模塊的一個實例(計費模塊的實例,交易模塊的實例,依此類推)。 因此,我想向該模塊上工作的組授予對EC2實例的完全訪問權限,同時阻止對該帳戶上其他EC2實例的訪問權限,例如,從事計費工作的開發人員只能訪問EC2計費實例,而不能訪問其他任何實例。 我找不到通過IAM策略實施此方法的方法。 有人可以幫幫我嗎。 謝謝

未經AWS Level許可

首先,如果它涉及對EC2實例的SSH訪問(或Windows,則為遠程桌面),那么您無需IAM或其他AWS特定的訪問控制機制就可以做到這一點。

  • 僅與需要訪問每個服務器的管理員共享SSH密鑰。
  • 為每個用戶創建密鑰並將其添加到EC2實例,以便具有密鑰的用戶可以訪問服務器。

注意:還請記住使用“安全”組將其IP列入白名單,不允許來自不同網絡的任何未經授權的訪問。

具有AWS IAM權限

如果要允許VPC,自動縮放,負載平衡和其他配置,則可以創建具有細粒度訪問權限的IAM用戶(不適用於EC2)。 但是實際上這樣做將具有挑戰性,因為它將需要大量的精力來編寫細粒度的策略以及在新用戶加入時對其進行維護和修改。

一些公司使用的策略之一是創建多個AWS賬戶並在每個服務器中部署服務器,在該服務器中可以授予子組對該賬戶的訪問權限。 您可以創建合並賬單,並使用AWS Organizations進行賬單和治理。 但是,如果每個EC2實例之間的依賴關系不在VPC級別,則這是可能的。

完全支持安排類型,您可以在其中將用戶/組限制為僅根據安全性和訪問模型進行了標記的實例。

這是一個很好的博客,其中包含有關將用戶限制為帶標簽的實例的示例。

從揭開EC2資源級別權限的神秘面紗

現在,讓我們更進一步。 資源級權限的好處之一是,您可以使用它們來利用EC2標簽。 例如,您可以確保僅當實例具有名為Environment的標記並將其設置為Prod時 ,該用戶才能停止,終止或重新啟動us-east-1中的實例 通過此更改,該策略現在如下所示:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "TheseActionsDontSupportResourceLevelPermissions",
            "Effect": "Allow",
            "Action": ["ec2:Describe*"],
            "Resource": "*"
        },
        {
            "Sid": "ThisActionSupportsResourceLevelPermissionsWithInstancesButNotWithTags",
            "Effect": "Allow",
            "Action": ["ec2:RunInstances"],
            "Resource": [
                "arn:aws:ec2:us-east-1:accountid:instance/*",
                "arn:aws:ec2:us-east-1:accountid:key-pair/*",
                "arn:aws:ec2:us-east-1:accountid:security-group/*",
                "arn:aws:ec2:us-east-1:accountid:volume/*",
                "arn:aws:ec2:us-east-1::image/ami-*"]
        },
        {
            "Sid": "TheseActionsSupportResourceLevelPermissionsWithInstancesAndTags",
            "Effect": "Allow",
            "Action": [
                "ec2:TerminateInstances",
                "ec2:StopInstances",
                "ec2:StartInstances"],
            "Resource": "arn:aws:ec2:us-east-1:accountid:instance/*",
            "Condition": {
                "StringEquals": {"ec2:ResourceTag/Environment": "Prod"}
            }
        }
    ]
}

就像其他人建議的那樣,這並不限制SSH訪問。 為此,您只能為具有訪問權限的用戶/組提供實例的密鑰。 您可以維護每個組的使用列表,並且在供應時,僅將用戶分配給通過標簽分配的組。

IAM創建一個組,並通過使用“用戶”將開發人員包括在內。

執行相同的操作,並為另一個實例創建另一個組。

啟動2個單獨的EC2實例后,為這兩個實例生成唯一的KeyPair ,並將它們共享給您希望它們訪問的開發人員。

您可以使用AWS OpsWork來管理對用戶的EC2實例訪問非常簡單...有關更多信息,請訪問以下鏈接: AWS OpsWork

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM