授與 IBM Cloud Object Storage 存取權以匯入及匯出映像檔
若要匯入自訂影像到 IBM Cloud VPC,或從 IBM Cloud VPC 匯出自訂影像,您必須有 IBM Cloud® Object Storage 的實例可用。 您也必須在 Object Storage 建立儲存區,以儲存映像檔。 最後,您必須建立一項授權,以便 VPC 影像服務能夠存取 Object Storage。
建立 IBM Cloud Object Storage 服務實例
如果需要建立 IBM Cloud Object Storage 的實例,請參閱開始使用 IBM Cloud Object Storage。
請前往 Cloud Identity and Access Management,您必須建立一項授權,以便 VPC 的影像服務能夠存取 IBM Cloud Object Storage。
建立授權
若要授權 VPC 的映像檔服務存取目標服務 IBM Cloud Object Storage,您必須建立 授權。 若要匯入影像,您必須指定 Object Storage 的 Reader 服務存取角色。 若要匯出映像檔,您必須指定 IBM Cloud Object Storage的「撰寫者」服務存取角色。 有了 Object Storage 的 Reader 和 Writer 服務存取角色,您就可以匯入和匯出影像。
在主控台中授予讀者和寫者存取權限
完成下列步驟,以建立 VPC 映像檔服務的授權,從 IBM Cloud Object Storage 服務實例匯入映像檔,並將映像檔匯出至 IBM Cloud Object Storage 服務實例。
-
從 IBM Cloud 主控台 功能表列,按一下 管理> 存取權 (IAM),然後選取 授權。
-
在「管理授權」頁面上,按一下 建立。
-
選取 來源帳戶。 預設情況下,此帳戶已被選中。 按下一步。
-
請選擇用於授權的來源服務。 請將「VPC 基礎架構服務」指定為來源服務。 按下一步。
-
對於資源,請選擇存取範圍的方式。
- 選擇特定資源。
- 對於特定資源,選擇資源類型和 VPC 的映像服務。
- 按下一步。
-
對於目標服務,選擇 Cloud Object Storage。 按下一步。
-
對於資源,指定您希望如何確定存取範圍。 您可以使用預設的 All resources(所有資源 )選項。 按下一步。
如果您想在 IBM Cloud Object Storage 內設定特定資源的存取範圍,可以選擇 基於選定屬性的資源。 然後,根據您的喜好進行選擇,縮小存取範圍。
-
對於角色,選擇服務存取角色 Reader 和 Writer。
-
按一下「檢閱」以確保您的選擇看起來正確無誤。
-
按一下授權。
如需相關資訊,請參閱使用授權來授與服務之間的存取權。
從 CLI 授與所有儲存區的「讀者」及「撰寫者」存取權
若要授與 Reader 及 Writer 對 IBM Cloud Object Storage中所有儲存區的存取權,請執行 iam authorization-policy-create 指令。 以下指令授權 Image Service for VPC 從 Object Storage 服務實體中的任何儲存桶匯入影像,並將影像匯出到 Object Storage 服務實體中的任何儲存桶。
ibmcloud iam authorization-policy-create is cloud-object-storage Reader,Writer --source-resource-type image
如需相關資訊,請參閱 ibmcloud iam authorization-policy-create。
從 CLI 授與特定儲存區的存取權
您可以選擇將授權授與 IBM Cloud Object Storage中的特定儲存區。 以下範例說明如何授予 Reader 對特定儲存桶的存取權,以便從 Object Storage 匯入影像。 若要匯出影像到 Object Storage,您必須同時授予 Writer 存取權限。
執行指令前,您需要知道 Object Storage 服務範例的 GUID。
-
使用
ibmcloud resource service-instance指令來取得 GUID。 請參閱下列範例:$ ibmcloud resource service-instance cos-fs-cloud-us-south Retrieving service instance cos-fs-cloud-us-south in all resource groups under account Test Account as test.user@ibm.com... OK Name: cos-fs-cloud-us-south ID: crn:v1:bluemix:public:cloud-object-storage:global:a/a1234567:0e4a33e6-973e-42b6-bea4-ce1b3aebe163:: GUID: 0e4a33e6-973e-42b6-bea4-ce1b3aebe163 Location: global Service Name: cloud-object-storage Service Plan Name: standard Resource Group Name: defaults State: active Type: service_instance Sub Type: Locked: false Created at: 2021-07-27T14:40:45Z Created by: IBMid-12345678 Updated at: 2021-07-27T14:40:47Z Last Operation: Status create succeeded Message Completed create instance operation -
執行下列指令,並將
$COS_INSTANCE_GUID取代為GUID值。ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id $COS_INSTANCE_GUID成功的回應如下例所示:
$ ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id 0e4a33e6-973e-42b6-bea4-ce1b3aebe163 Creating authorization policy under account a1234567 as test.user@ibm.com... OK Authorization policy 0bbcb168-bf7b-4ebf-9684-769f1d7e80e7 was created. ID: 0bbcb168-bf7b-4ebf-9684-769f1d7e80e7 Source service name: is Source service instance: All instances Source resource type: image Target service name: cloud-object-storage Target service instance: 0e4a33e6-973e-42b6-bea4-ce1b3aebe163 Roles: Reader
如需此指令可用的所有參數的相關資訊,請參閱 ibmcloud iam authorization-policy-create。
使用 API 授與存取權
若要授權來源服務存取目標服務,請使用 IAM 原則管理 API。 請參閱下列 API 範例,以取得在指定 type=authorization 的情況下建立原則方法。 會列出所有可能的屬性。
用於建立授權原則的受支援屬性取決於每個服務支援的內容。 如需每一個服務所支援屬性的相關資訊,請參閱您正在使用之服務的說明文件。
此範例顯示 VPC 的「映像檔服務」存取 IBM Cloud Object Storage的授權原則。
curl --location --request POST 'https://iam.cloud.ibm.com/v1/policies' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer <iam token>' \
--data-raw '{
"type": "authorization",
"subjects": [
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "is"
},
{
"name": "resourceType",
"value": "image"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Reader"
},
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "$ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "cloud-object-storage"
}
]
}
]
}'
使用 Terraform 授予存取權
若要為 IBM Cloud Object Storage 建立服務對服務授權政策,請在 main.tf 檔案中使用 ibm_iam_authorization_policy 資源參數。
resource "ibm_iam_authorization_policy" "policy" {
source_service_name = "is"
source_resource_type = "image"
target_service_name = "cloud-object-storage"
roles = ["Reader","Writer"]
description = "Authorization Policy"
}
有關參數和屬性的詳細資訊,請參閱 授權資源的 Terraform 文件。
下一步
完成這些步驟之後,Image Service for VPC 就可以存取 Object Storage 中的影像或匯出影像到 Object Storage,繼續下列其中一個主題: