允許 EC2 執行個體被另一方關閉或阻止

允許 EC2 執行個體被另一方關閉或阻止

我正在和另一個人一起做一個項目,請叫他鮑伯。

我想在 Amazon EC2 執行個體上執行一款專有軟體。該軟體將向外部伺服器發送網路封包(HTTP 請求)。

我不希望鮑伯能夠獲得這個軟體。然而,我希望鮑伯能夠阻止我發送網路封包,這樣我就永遠無法阻止他將來這樣做。

我不知道怎麼辦。也許透過某種方式賦予鮑伯終止實例的權力,也許透過某種方式賦予他阻止資料包出去的能力,我不知道。

我很想聽聽如何以最小的額外延遲實現這一點的想法(例如,透過 Bob 擁有的單獨的 EC2 執行個體路由我的資料包會太慢)。謝謝!

答案1

為 Bob 建立一個 IAM 用戶,並附加一個策略,該策略僅授予他們非常有限的權限,僅足以查看實例並啟動/停止該實例 - 而不是終止它。策略的核心可能是這樣的,但您需要測試/調整它。

{
  "Version": "2012-10-17",
  "Statement": [
      {
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "ec2:Describe*"
        ],
        "Resource": "*"
    },
    {
        "Sid": "VisualEditor1",
        "Effect": "Allow",
        "Action": [
            "ec2:StartInstances",
            "ec2:StopInstances"
        ],
        "Resource": "arn:aws:ec2:::instance/i-012345"
    }
  ]
}

鮑伯可能需要更多權限,但當您嘗試此操作時您會發現它們。我可能會將 Bob 放入一個群組並將權限分配給一個群組,而不是直接分配給使用者。

答案2

只要你是帳戶的所有者,你就可以控制鮑伯能做什麼或不能做什麼,但你只能自願限制自己。如果鮑伯是該帳戶的所有者,您就無法阻止他為所欲為。就您而言,您想對您倆施加限制。解決此問題的一種方法是讓受信任的第三方開啟該帳戶並為你們倆設定權限。

答案3

這是另一個想法:

以需要「許可證密鑰」才能運作的方式編寫軟體。該軟體可以加密或具有一些其他類似的特徵,除非金鑰可用,否則它無法運作。密鑰將儲存在您控制的伺服器上。

鮑伯有一個他控制的伺服器,但上面的軟體需要您的金鑰才能運作。鮑伯可以隨心所欲地終止伺服器,但如果沒有您的金鑰(由您控制​​),他就無法竊取您的軟體。

軟體金鑰並非萬無一失——可以對您的軟體進行逆向工程。但你應該能夠讓這樣做過於耗時或昂貴。

這與所有主要軟體製造商用來控制其軟體的想法相同。 MS Windows 就是一個完美的例子。

相關內容