Amazon-Web-Services

AWS IAM 角色:究竟什麼是可信實體?

  • June 10, 2021

我有一個附加到 EC2 實例的 LaunchConfiguration 的角色,它賦予 EC2 實例權限來執行某些操作,例如 Cloudwatch 日誌(上下文對問題並不重要)。在 Cloudformation 中,角色如下所示:

   Type: 'AWS::IAM::Role'
   Properties:
     AssumeRolePolicyDocument:
       Version: '2012-10-17'
       Statement:
       - Effect: Allow
         Principal:
           Service: 'ec2.amazonaws.com'
         Action: 'sts:AssumeRole'
     Policies: ...

如果我在 AWS 控制台中查看角色,在“信任關係”下會顯示*“受信任的實體:身份提供商 ec2.amazonaws.com”*:


在此處輸入圖像描述


我假設 CloudformationAssumeRolePolicyDocument.Principal.Service映射到控制台中的“受信任實體”(順便說一句,這是一種奇怪的命名方式,因為我將“主體”讀作 IAM 中的不同含義,但無論如何……)。我正在使我的大腦緊張,試圖拼湊正在發生的事情。我的問題是:

  1. IAM“可信實體”到底是什麼?
  2. 實體*“ec2.amazonaws.com”如何“擔任角色”?服務’ec2.amazonaws.com’*的概念假設卷只是不點擊我。
  3. *實體“ec2.amazonaws.com”*在什麼意義上是“提供身份”?
  4. 我在哪裡可以找到這些所謂的受信任實體的完整列表?
  1. 一個受信任的實體是哪個服務可以承擔任何給定的角色。如果您使 EC2 成為受信任的實體,則您不能代入使用權限的角色,lambda 不能代入該角色,只能代入一個 EC2 實例。AWS 中的大多數服務都通過扮演角色獲得權限。許多服務可以為您自動配置這一點,這在人們學習 AWS 時很常見。當您在安全環境中工作時,設置角色和權限變得相當重要。例如,如果您授予 EC2 一個具有管理員權限的角色並且有人破壞了該實例,那麼他們實際上對您的 AWS 賬戶擁有管理員權限,這就是您授予所有資源/角色最少權限的原因。
  2. 當您配置像 EC2 實例或 Lambda 函式(等)這樣的資源時,您告訴它要承擔什麼角色。該 EC2 實例/函式/等然後具有與角色關聯的權限。
  3. 這僅意味著允許 EC2 實例擔任該角色。當 EC2 實例啟動時,它會辨識它想要承擔的角色。IAM 驗證允許該角色擔任該角色並且允許該實例啟動。
  4. 這裡有一個 AWS 服務委託人列表。當您在控制台中點擊“創建角色”時,您會得到一個受信任實體的列表。當我需要將一個放入我的 CloudFormation 時,我只需點擊它,然後從 json 複製並粘貼它。

AssumeRolePolicyDocument 指定誰可以擔任該角色。我懷疑您可以指定多個實體可以承擔一個角色,但實際上我為每個服務編寫一個角色。

您可以將 IAM 角色想像成類似於人們所擁有的角色。我作為“XYZ 公司的架構師”的角色允許我進入辦公室,登錄系統,諸如此類。如果我扮演警察的角色,我就有額外的權利,例如進入警察局、逮捕人等。

引用自:https://serverfault.com/questions/1066180