資源層級權限的 IAM 存取政策

指定細粒度、基於屬性的存取政策,藉由控制誰可以存取特定 IBM Cloud 資源,以及他們可以在資源上執行哪些動作,以達到最低權限存取。

下圖協助說明如何建立 IAM 原則。 原則的建立一律是先指定主體。 對象為特定使用者、服務 ID、存取群組或受信任的設定檔。 接著,選取原則的目標,它是您允許使用者存取的目標,例如:資源群組中的所有服務、帳戶中所有已啟用 IAM 的服務、帳戶管理服務,或是特定的服務實例。 最後,從可用的角色進行選取以便完成存取原則。 這些角色確切地定義了使用者可以完成的動作。 根據您選取的服務,可能還有其他配置選項可供使用。

使用主題、目標和角色建立 IAM 政策
如何使用主題、目標和角色建立 IAM 存取政策

如果您有適當的角色,可以指派及管理原則。 下表顯示原則管理作業,以及各項作業所需的角色。

允許建立存取政策的使用者
動作 必要角色
建立帳戶中所有服務及實例的原則 所有帳戶管理服務和所有已啟用「身分及存取」服務的帳戶擁有者或管理者
建立帳戶中服務的原則 所有已啟用「身分及存取」服務的帳戶擁有者、管理者,或是帳戶中服務的管理者
建立服務實例的原則 所有已啟用「身分及存取」服務的帳戶擁有者、管理者、帳戶中服務的管理者、相關資源群組中所有服務的管理者,或是服務實例的管理者

通用存取原則類型

您可以指派下列類型的存取原則,為使用者、服務 ID 或存取群組提供精細的存取權:

  • 所有帳戶管理服務
  • 特定的帳戶管理服務
  • 所有 IAM 帳戶管理服務,是帳戶管理服務的子集,包括 IAM 身分、IAM 存取管理、IAM 使用者管理和 IAM 群組
  • 特定的 IAM 服務
  • 帳戶內的所有資源
  • 所有服務內屬於個別資源群組的所有資源,以及管理資源群組的能力
  • 資源群組中單一服務內的所有資源,以及管理資源群組的能力
  • 帳戶中單一服務內的所有資源,不論它們被指派到哪個資源群組
  • 個別實例中的資源
  • 實例內的單一資源類型(例如,Object Storage 實例中的儲存區)

如果要啟用使用者的完整管理員存取權,以完成 帳戶管理任務,例如邀請和移除使用者、檢視帳單和使用量、管理服務 ID、管理存取群組、管理使用者存取權,以及存取所有帳戶資源,則必須為使用者指定下列存取權:

  • 帳戶內所有身分與存取啟用服務的政策,並指定管理員和經理角色。
  • 所有帳戶管理服務上指定管理員角色的政策。

服務群組

您可以為一組服務指派存取權,如此一來,您只需要一個政策就可以為多個服務指派存取權。 這樣,您就可以減少帳戶中的政策數量,並減少管理存取的時間和精力。

  • 所有啟用身分與存取的服務:所有使用 IAM 進行存取管理的目錄服務。
  • 所有帳戶管理服務:平台服務,例如帳單與使用、授權與權利、企業等。 如需詳細資訊,請參閱 指派帳戶管理服務存取權限
    • 所有 IAM 帳戶管理服務:帳戶管理服務的子集,包括 IAM 平台服務 IAM 身分、IAM 存取管理、IAM 使用者、IAM 群組,以及未來的 IAM 服務。

指定 IBM Cloud 存取政策

為了幫助您進一步瞭解 IBM Cloud 中的存取政策與您可能熟悉的其他雲端供應商的相關使用方式,請查看以下存取政策的詳細資訊和範例。

IBM Cloud IAM 政策包括被賦予存取權限的身分(主體),例如使用者或服務 ID、被賦予存取權限的特定資源或服務(目標),以及定義在選定資源或服務的情境中允許哪些動作的角色。

在 IBM Cloud 中,使用者、服務 ID 或存取群組的成員預設沒有任何存取權限。 IBM Cloud 存取模型在了解您如何被允許或拒絕完成特定動作時非常簡單。 直到管理員指派具有特定存取角色的存取政策,才會允許存取。 IAM 系統不必評估允許和拒絕政策來決定允許哪些動作,取而代之的是,系統只會評估您有哪些資源的政策,以及您所指定角色允許的存取等級。

若要減少帳戶中的政策數量,並只保留每個使用者所需的最低存取權限,您可以識別並移除不常使用的存取政策。 如需詳細資訊,請參閱 管理非作用中政策

當您在政策中指定資源時,因為 IBM Cloud 是 基於屬性的,所以您可以指定一組廣泛的資源讓使用者存取,例如資源群組中的所有資源。 或者,您可以將使用者的存取範圍縮小到單一服務的特定實體,甚至是子資源類型,例如 Object Storage bucket。IBM Cloud IAM 提供高度的彈性和粒度,可協助您僅指定所需的存取類型。 您可以在存取政策中使用屬性來指定不同層級的存取權限,以下是幾個範例:

  • 所有帳戶管理服務
  • 特定的帳戶管理服務
  • 帳戶內所有啟用身分與存取的服務,包括所有使用 IAM 進行存取管理的目錄服務
  • 屬於資源群組的所有資源
  • 整個帳戶中單一服務的所有資源類型,不論資源群組的指派為何
  • 帳戶中服務的特定實例
  • 一個實例中的單一子資源類型,例如 Object Storage 實例中的水桶

如果特定的預定義平台或服務角色不符合您在指派存取層級時的需求,您可以為特定服務建立 自訂角色,然後從可用的動作中選擇,建立符合組織需求的角色。

原則範例

此策略範例允許存取屬於資源群組 default 的所有服務資源,該資源群組的 ID 為 abcd2e6fg1h74i44j5kl467m701n5289,並已指定 Viewer 平台角色。 此政策可指定給使用者、服務 ID 或存取群組。 在這種情況下,它被指派給一個 iam_id 為 IBMid-3IAMISBEST1 的使用者。

存取群組並不是使用者或服務 ID 之類的身分;然而,存取群組是一種身分的群組機制。 存取群組可定義為存取政策的主體,群組上指定的存取權限適用於加入群組的所有成員。

{
  "type": "access",
  "subjects": [
    {
      "attributes": [
        {
          "name": "iam_id",
          "value": "IBMid-3IAMISBEST1"
        }
      ]
    }
  ],
  "roles": [
    {
      "role_id": "crn:v1:bluemix:public:iam::::role:Viewer"
    }
  ],
  "resources": [
    {
      "attributes": [
        {
          "name": "accountId",
          "value": "7e522a19eb77477e88e96a600c44fb22"
        },
        {
          "name": "resourceGroupId",
          "value": "abcd2e6fg1h74i44j5kl467m701n5289"
        }
      ]
    }
  ]
}

除了使用者、服務 ID 或存取群組的存取政策可提供對帳戶中的服務、特定資源或資源群組的存取外,IBM Cloud 也提供指派存取政策的功能,這種存取政策稱為服務對服務授權,可提供服務間的存取。 有關這種政策類型的範例,請參閱 使用 API 建立授權