設定群集元件的信任設定檔

您可以使用受信任的配置檔來控制對資源的存取權限,包括以下元件:Block Storage、File Storage 或 Cloud Object Storage。

關於可信賴的檔案

透過使用可信賴的設定檔,您可以建立彈性、安全的方式,讓聯合使用者存取帳戶中的 IBM Cloud 資源。 所有共享企業使用者目錄中定義的特定屬性的聯合使用者,都會對應到一個共同的設定檔,並且可以共享 IBM Cloud 資源的存取權。 這種共通的身分可以讓您的組織中有共同存取需求的成員一次自動存取資源,而不必將每個使用者加入帳號,然後再直接或透過存取群組授予他們存取權限。

可信檔案的優點包括

消除對長期使用的 API 金鑰的需求
基於您在建立受信任設定檔時建立的受信任關係,而不是內嵌的 API 金鑰,授予對您資源的存取權。 這可降低認證遭洩露或洩漏的風險。
集中式存取控制
透過單一受信設定檔管理權限,簡化授予、撤銷或稽核存取的程序。
權限範圍
堅持最少權限原則,以完成特定任務所需的最低權限建立設定檔。

所有儲存元件的最低存取要求

要為您的儲存元件使用可信賴的設定檔,需要一套最低限度的存取政策。 要為所有儲存元件設定可信賴的設定檔,必須使用本節中的政策。

使用下列設定建立信任關係。 VPC 群集需要這些權限。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

所有元件的最低權限
服務名稱 必要的許可 說明
計費 編輯者 允許檢視和管理帳單資料,例如使用量、成本和報告。 有助於自動化成本追蹤或預算感知作業。
Kubernetes 服務 管理者 使 Kubernetes 群集能夠與儲存資源互動。
VPC 基礎結構服務 作家、編輯、快照遠端帳號還原者 支援儲存資源的配置與管理。
資源群組 檢視者 指定套用受信任設定檔的資源群組。 對於跨多個資源群組的作業,您必須指定所有相關的資源群組。 請注意,如果您要使用資源群組建立自訂儲存類別,則必須同時為資源群組的受信任設定檔指定 Viewer 存取權限。

此外,如果您打算使用 Classic 基礎結構,則必須啟用新增/升級儲存 (儲存層)儲存管理權限。 若要啟用這些權限,請導覽使用者介面中的受 信任的設定檔儀表板,然後選擇相關的受信任設定檔。 按一下 Classic infrastructure,然後展開 Sales and Devices 下方的選項,以找到權限。

各組件的最低存取需求

若要將受信任的設定檔用於以下元件,必須具備一套最低限度的存取政策。

進階叢集管理 (ACM)

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Red Hat OpenShift
  • 選取所有服務資源
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

ACM 的最低權限
服務名稱 必要的許可 說明
Kubernetes 服務 讀者、觀眾、操作員、編輯 使樞紐叢集能夠與受管叢集進行互動。

標準區塊儲存空間

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

新增下表中的權限。 若要啟用這些權限,您必須使用使用者介面。 導覽到使用者介面中的 受信任的設定檔儀表板,然後選擇相關的受信任設定檔。 按一下 Classic infrastructure,然後展開選項找到權限。

經典區塊儲存的最低權限
服務名稱 必要的許可 說明
Devices 儲存空間管理 啟用裝置上 Classic 區塊儲存的附加、分離和組態。
Sales 新增/升級儲存設備(儲存層) 授予透過銷售 API 訂購、升級或修改 Classic 儲存產品的權限。

Classic File Storage

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

新增下表中的權限。 若要啟用這些權限,您必須使用使用者介面。 導覽到使用者介面中的 受信任的設定檔儀表板,然後選擇相關的受信任設定檔。 按一下 Classic infrastructure,然後展開選項找到權限。

經典檔案儲存的最小權限
服務名稱 必要的許可 說明
Devices 儲存空間管理 啟用裝置上 Classic 區塊儲存的附加、分離和組態。
Sales 新增/升級儲存設備(儲存層) 授予透過銷售 API 訂購、升級或修改 Classic 儲存產品的權限。

叢集 Autoscaler

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

群集自動轉換器的最小權限
服務名稱 必要的許可 說明
Kubernetes 服務 管理者 啟用 Kubernetes 群集與自動分級元件互動。

Object Storage

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

物件儲存的最小權限
服務名稱 必要的許可 說明
Kubernetes 服務 閱讀器、檢視器 啟用 Kubernetes 群集與 COS 外掛程式互動。
VPC 基礎結構服務 閱讀器、檢視器 啟用與 VPC 的通訊,以取得 API 呼叫。
資源群組 檢視者 指定套用受信任設定檔的資源群組。 對於跨多個資源群組的作業,您必須指定所有相關的資源群組。

ODF 計費代理

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

ODF 計費代理的最小權限
服務名稱 必要的許可 說明
計費 編輯者 允許檢視和管理帳單資料,例如使用量、成本和報告。 有助於自動化成本追蹤或預算感知作業。
Kubernetes 服務 編輯者 使 Kubernetes 群集能夠與區塊儲存進行互動。
VPC 基礎結構服務 編輯、作家 允許配置和管理儲存資源。
資源群組 檢視者 指定套用受信任設定檔的資源群組。 對於跨多個資源群組的作業,您必須指定所有相關的資源群組。

VPC Block Storage

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

VPC 區塊儲存的最小權限
服務名稱 必要的許可 說明
Kubernetes 服務 運算子 使 Kubernetes 群集能夠與區塊儲存資源互動。
VPC 基礎結構服務 作家、編輯、快照遠端帳號還原者 支援區塊儲存資源的配置、管理及跨快照作業。
資源群組 檢視者 指定套用受信任設定檔的資源群組。 對於跨多個資源群組的作業,您必須指定所有相關的資源群組。 請注意,如果您要使用資源群組建立自訂儲存類別,則必須同時為資源群組的受信任設定檔指定 Viewer 存取權限。

VPC 檔案儲存

使用下列設定建立信任關係。

  • 運算服務類型(可在使用者介面中的運算資源索引標籤下找到):
    • Kubernetes
    • Red Hat OpenShift
  • 受信任的命名空間:kube-system

使用下表中的權限建立存取政策。

VPC 檔案儲存的最小權限
服務名稱 必要的許可 說明
Kubernetes 服務 運算子 使 Kubernetes 群集能夠與檔案儲存資源互動。
VPC 基礎結構服務 作家、編輯 支援檔案儲存資源的配置與管理。
資源群組 檢視者 指定套用受信任設定檔的資源群組。 對於跨多個資源群組的作業,您必須指定所有相關的資源群組。 請注意,如果您要使用資源群組建立自訂儲存類別,則必須同時為資源群組的受信任設定檔指定 Viewer 存取權限。

在 CLI 中設定受信任的設定檔

按照步驟在 CLI 中建立和設定信任的設定檔。

一旦將受信任的設定檔新增至叢集,就無法移除,也無法恢復使用 API 金鑰來使用資源。 請務必仔細遵循這些步驟,以確保正確設定您的信任設定檔。

  1. 登入 IBM Cloud CLI。

    ibmcloud login --apikey API_KEY -g RESOURCE_GROUP
    
  2. 執行指令以建立受信任的設定檔。 如需命令選項的完整清單,請參閱 IAM CLI 文件

    ibmcloud iam trusted-profile-create NAME --description "Identity for storage"
    
  3. 將使用範圍的規則附加到 kube‑system 命名空間。 如需命令選項的完整清單,請參閱 IAM CLI 文件

    ibmcloud iam trusted-profile-rule-create --name NAME --type Profile-CR --cr-type ROKS_SA  --conditions claim:namespace,operator:EQUALS,value:kube-system
    
  4. 對於 VPC 群集:建立存取政策並將其指定給受信任的設定檔。 此範例指派所有儲存元件所需的最低權限。 如需僅個別元件所需的權限清單,請參閱個 別儲存元件的最低要求。 指定要將政策指定給受信任設定檔的名稱或 ID。 如需命令選項的完整清單,請參閱 IAM CLI 文件。 此步驟不適用於經典叢集。 為 VPC Infrastructure 服務新增政策。

    ibmcloud iam trusted-profile-policy-create NAME|ID  --roles Editor,Writer --service-name is
    

    新增計費服務的政策。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Editor --service-name billing
    

    為 Kubernetes 服務新增政策。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Administrator --service-name containers-kubernetes
    

    為應用於受信任設定檔的相關資源群組新增政策。 指定受信任設定檔套用的資源群組。

    ibmcloud iam trusted-profile-policy-create NAME|ID --roles Operator  --resource-type "resource-group" --resource "my-resource-group"
    
  5. 對於傳統群集:執行指令,將所 需的最低權限 新增至受信任的設定檔。 指定為信任設定檔建立的使用者 ID。

    ibmcloud oc sl user permission-edit TRUSTED_PROFILE_ID --permission NAS_MANAGE,ADD_SERVICE_STORAGE
    
  6. 建立受信任的設定檔並指定所需的存取政策後,為群集或群集所在的資源群組 設定受信任的設定檔。 設定可信賴的設定檔會套用至您的儲存元件。

使用使用者介面設定可信賴的設定檔

按照步驟在使用者介面中建立和設定受信任的設定檔。

一旦將受信任的設定檔新增至叢集,就無法移除,也無法恢復使用 API 金鑰來使用資源。 請務必仔細遵循這些步驟,以確保正確設定您的信任設定檔。

  1. 登入 IBM Cloud 帳戶,並導航至 Trusted Profiles 頁面。

  2. 建立受信任的個人資料。

  3. 與 Red Hat OpenShift on IBM Cloud 服務建立信任關係。

    1. 在「選取信任的實體類型」區段中,按一下「運算資源」。
    2. 建立信任關係下,選擇 Red Hat OpenShift.
    3. 選取所有服務資源。 然後,新增一個條件,當 Namespace kube-system 時,允許存取。
      • 您可以選擇帳戶中存在的特定資源。
  4. 按一下建立

  5. 僅 VPC。 將存取政策新增至受信任的設定檔。

    1. 從受信任的設定檔頁面,按一下您剛剛建立的受信任設定檔。
    2. 在「存取權限」索引標籤中,按一下「指派存取權限」。
    3. 在「您要如何指派存取權限?」區段中,按一下存取原則
    4. 新增服務和角色,以符合相關元件的 最低需求。 將政策套用至所有資源。
  6. 僅限經典。 新增權限至受信任的設定檔。

    1. 從受信任的設定檔頁面,按一下您剛剛建立的受信任設定檔。
    2. 請切換至「經典基礎架構」分頁。
    3. 在權限的下拉式選單中,選擇所需的權限,以符合相關元件的 最低要求

使用 API 設定受信任的設定檔

  1. 建立受信任的個人資料。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/profiles \
    --header 'Content-Type: application/json' \
    --data '{
        "name":"<PROFILE_NAME>",
        "account_id":"<ACCOUNT_ID>"
    }'
    
  2. 將使用範圍的規則附加到 kube‑system 命名空間。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/profiles/<PROFILE_NAME>/rules \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "Profile-CR",
        "cr_type":"ROKS_SA",
        "conditions": [
            {
                "claim": "namespace",
                "operator": "EQUALS",
                "value": "\"kube-system\""
            }
        ]
    }'
    
  3. 針對 VPC 群集:將存取政策附加到 VPC 元件。 這些範例指定所有儲存元件所需的最低權限。

    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "access",
        "description": "Writer, Operator role for VPC infrastructure services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
            },
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "is"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{
        "type": "access",
        "description": "Editor role for billing services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Editor"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "billing"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{	
        "type": "access",
        "description": "Administrator role for containers-kubernetes services",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Administrator"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "serviceName",
                        "value": "containers-kubernetes"
                    }
                ]
            }
        ]
    }'
    
    curl --request POST \
    --url https://iam.cloud.ibm.com/v1/policies \
    --header 'Content-Type: application/json' \
    --data '{	
        "type": "access",
        "subjects": [
            {
                "attributes": [
                    {
                        "name": "iam_id",
                        "value": "<IAM_PROFILE>"
                    }
                ]
            }
        ],
        "roles": [
            {
                "role_id": "crn:v1:bluemix:public:iam::::role:Operator"
            }
        ],
        "resources": [
            {
                "attributes": [
                    {
                        "name": "accountId",
                        "value": "<ACCOUNT_ID>"
                    },
                    {
                        "name": "resource",
                        "value": "<RESOURCE_GROUP_ID>"
                    },
                    {
                        "name": "resourceType",
                        "value": "resource-group"
                    },
                ]
            }
        ]
    }
    
  4. 對於傳統群集:使用使用者介面將權限新增至受信任的設定檔。

    1. 登入 IBM Cloud 帳戶,並導航至 Trusted Profiles 頁面。
    2. 按一下您剛剛建立的受信任設定檔。
    3. 請切換至「經典基礎架構」分頁。
    4. 在權限的下拉式選單中,選擇所需的權限,以符合相關元件的 最低要求

設定群集或資源群組的受信任設定檔

當您為群集設定可信賴的設定檔時,它適用於您的儲存元件。 您可以為個別群集或資源群組設定信任設定檔。

一旦將受信任的設定檔新增至叢集,就無法移除,也無法恢復使用 API 金鑰來使用資源。 請務必仔細遵循這些步驟,以確保正確設定您的信任設定檔。

  1. 確定您已建立符合 儲存元件最低要求的 可信設定檔。

  2. 將受信任的設定檔指定給您的群集,或您的群集所在的資源群組。 如果您將受信任設定檔指定給資源群組,該設定檔將適用於資源群組中的所有群集。

    若要為群集指定受信任的設定檔。

    ibmcloud oc experimental trusted-profile set --trusted-profile PROFILE --cluster CLUSTER [--output OUTPUT] [-q]
    
    --cluster CLUSTER
    要設定信任設定檔的群集 ID。 要取得叢集 ID,請執行 ibmcloud oc cluster get
    --trusted-profile PROFILE
    受信任的設定檔 ID。 若要取得受信任的設定檔 ID,請執行 ibmcloud iam trusted-profiles
    --output OUTPUT
    以提供的格式列印指令輸出。 接受值:json
    -q
    不要顯示日或更新提示的訊息。

    若要將受信任的設定檔指定給資源群組。

    ibmcloud oc experimental trusted-profile default set --region REGION --resource-group GROUP --trusted-profile PROFILE [--output OUTPUT] [-q]
    
    --region REGION
    資源群組所在的區域。 若要取得資源群組的詳細資料,請執行 ibmcloud resource group
    --resource-group GROUP
    要設定受信任設定檔的資源群組 ID。 若要列出您的資源群組,請執行 ibmcloud resource groups
    --trusted-profile PROFILE
    受信任的設定檔 ID。 若要取得受信任的設定檔 ID,請執行 ibmcloud iam trusted-profiles
    --output OUTPUT
    以提供的格式列印指令輸出。 接受值:json
    -q
    不要顯示日或更新提示的訊息。
  3. 確認受信任的設定檔已加入群集。

    ibmcloud oc experimental trusted-profile get --cluster CLUSTER
    

    輸出範例。

    Fetching trusted-profile for the cluster...
    OK
    Cluster a1bc2de45fgh6ijklmn7op is configured with trusted-profile Profile-a12bc34-1111-1111-1234-a123bc456
    

限制與注意事項

使用受信任的設定檔前,請檢閱下列限制和注意事項。

不可逆地過渡到可信賴的設定檔
在群集或資源群組層級設定可信賴的設定檔後,不支援恢復使用 API 金鑰。 請仔細遵循步驟,以確保正確設定受信任的設定檔。
驗證範圍僅限於 kube-system 命名空間
可信任的設定檔信任驗證目前僅限於 Kubernetes 和 Red Hat OpenShift 叢集的 kube-system 命名空間。 使用者若嘗試使用此範圍以外的其他可信賴的設定檔功能或組態,可能會遇到問題。
VPC Block Storage 卷冊的使用者標籤
由於已知的問題,當實作可信賴的設定檔時,可能無法顯示 VPC Block Storage 磁碟區上使用者標籤的更新。