Zugriff auf IBM Cloud Object Storage zum Importieren und Exportieren von Images erteilen

Um ein benutzerdefiniertes Bild in IBM Cloud VPC zu importieren oder ein benutzerdefiniertes Bild aus IBM Cloud VPC zu exportieren, müssen Sie eine Instanz von IBM Cloud® Object Storage zur Verfügung haben. Des Weiteren müssen Sie ein Bucket in Object Storage erstellen, in dem Ihre Images gespeichert werden können. Abschließend müssen Sie eine Berechtigung erstellen, damit der Image-Dienst für VPC auf Object Storage zugreifen kann.

IBM Cloud Object Storage-Serviceinstanz erstellen

Wenn Sie eine IBM Cloud Object Storage-Instanz erstellen müssen, finden Sie weitere Informationen in der Einführung in IBM Cloud Object Storage.

Unter „ Cloud Identity and Access Management “ müssen Sie eine Berechtigung erstellen, damit der Image-Dienst für VPC auf „ IBM Cloud Object Storage “ zugreifen kann.

Autorisierung erstellen

Um den Image-Service für VPC für den Zugriff auf den Zielservice IBM Cloud Object Storagezu berechtigen, müssen Sie eine Berechtigung erstellen. Um ein Bild zu importieren, müssen Sie die Reader-Service-Zugriffsrolle für Object Storage angeben. Um ein Image zu exportieren, müssen Sie die Servicezugriffsrolle 'Schreibberechtigter' für IBM Cloud Object Storageangeben. Mit den Service-Zugriffsrollen Reader und Writer für Object Storage können Sie Bilder sowohl importieren als auch exportieren.

Gewährung von Leser- und Schreiberzugriff in der Konsole

Führen Sie die folgenden Schritte aus, um eine Berechtigung für den Image Service for VPC zum Importieren von Images aus einer IBM Cloud Object Storage-Serviceinstanz und zum Exportieren von Images in eine IBM Cloud Object Storage-Serviceinstanz zu erstellen.

  1. Klicken Sie in der Menüleiste der IBM Cloud-Konsole auf Verwalten > Zugriff (IAM) und wählen Sie Berechtigungen aus.

  2. Klicken Sie auf der Seite „Berechtigungen verwalten“ auf „ Erstellen “.

  3. Treffen Sie Ihre Auswahl für das Quellenkonto. Standardmäßig ist dieses Konto ausgewählt. Klicken Sie auf Weiter (Next).

  4. Wählen Sie einen Quelldienst für die Autorisierung aus. Geben Sie „ VPC Infrastructure Services “ als Quelldienst an. Klicken Sie auf Weiter.

  5. Wählen Sie für Ressourcen aus, wie Sie den Zugriff einschränken möchten.

    1. Wählen Sie Spezifische Ressourcen.
    2. Wählen Sie unter Spezifische Ressourcen den Ressourcentyp und den Bilddienst für VPC.
    3. Klicken Sie auf Weiter.
  6. Wählen Sie für den Target-Dienst Cloud Object Storage. Klicken Sie auf Weiter.

  7. Geben Sie bei Ressourcen an, wie Sie den Zugriff einschränken möchten. Sie können die Standardauswahl " Alle Ressourcen" verwenden. Klicken Sie auf Weiter.

    Wenn Sie den Zugriff auf eine bestimmte Ressource innerhalb von IBM Cloud Object Storage einschränken möchten, können Sie Ressourcen anhand ausgewählter Attribute auswählen. Treffen Sie dann eine Auswahl, um den Zugang nach Ihren Präferenzen einzuschränken.

  8. Wählen Sie unter Rollen die beiden Service-Zugangsrollen Leser und Schreiber.

  9. Klicken Sie auf Überprüfen, um sicherzustellen, dass Ihre Auswahl richtig aussieht.

  10. Klicken Sie auf Autorisieren.

Weitere Informationen finden Sie im Abschnitt über die Verwendung von Berechtigungen für die Zugriffserteilung zischen Services.

Leser-und Schreibzugriff auf alle Buckets über die Befehlszeilenschnittstelle erteilen

Führen Sie den Befehl iam authorization-policy-create aus, um Reader und Writer Zugriff auf alle Buckets in IBM Cloud Object Storagezu erteilen. Der folgende Befehl autorisiert den Image Service für VPC zum Importieren von Bildern aus einem beliebigen Bucket in einer Object Storage Service-Instanz und zum Exportieren von Bildern in einen beliebigen Bucket in einer Object Storage Service-Instanz.

ibmcloud iam authorization-policy-create is cloud-object-storage Reader,Writer --source-resource-type image

Weitere Informationen finden Sie unter ibmcloud iam authorization-policy-create.

Zugriff auf ein bestimmtes Bucket über die Befehlszeilenschnittstelle erteilen

Sie können die Berechtigung für ein bestimmtes Bucket in IBM Cloud Object Storageerteilen. Das folgende Beispiel beschreibt, wie Sie Reader Zugriff auf einen bestimmten Bucket gewähren, um Bilder von Object Storage zu importieren. Um ein Bild nach Object Storage zu exportieren, müssen Sie auch Writer Zugriff gewähren.

Bevor Sie den Befehl ausführen, müssen Sie die GUID der Instanz des Dienstes „ Object Storage “ kennen.

  1. Verwenden Sie den Befehl ibmcloud resource service-instance, um die GUID abzurufen. Sehen Sie sich das folgende Beispiel an:

    $ 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
    
  2. Führen Sie den folgenden Befehl aus und ersetzen Sie „ $COS_INSTANCE_GUID “ durch den Wert „ GUID “.

    ibmcloud iam authorization-policy-create is cloud-object-storage Reader --source-resource-type image --target-service-instance-id $COS_INSTANCE_GUID
    

    Eine erfolgreiche Antwort sieht wie im folgenden Beispiel aus:

    $ 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
    

Weitere Informationen zu allen für diesen Befehl verfügbaren Parametern finden Sie unter ibmcloud iam authorization-policy-create.

Zugriff über die API erteilen

Verwenden Sie die IAM-Richtlinienmanagement-API, um einen Quellenservice für den Zugriff auf einen Zielservice zu berechtigen. Das folgende API-Beispiel zeigt das Erstellen einer Richtlinienmethode, wobei type=authorization angegeben wurde. Alle möglichen Attribute werden aufgelistet.

Die unterstützten Attribute zum Erstellen einer Berechtigungsrichtlinie hängen davon ab, was der einzelne Service unterstützt. Weitere Informationen zu unterstützten Attributen für jeden Service finden Sie in der Dokumentation zu den verwendeten Services.

Das Beispiel zeigt eine Berechtigungsrichtlinie für den Image Service for VPC für den Zugriff auf 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"
                }
            ]
        }
    ]
}'

Zugang mit Terraform gewähren

Um eine Service-to-Service-Autorisierungsrichtlinie für IBM Cloud Object Storage zu erstellen, verwenden Sie das Ressourcenargument ibm_iam_authorization_policy in Ihrer main.tf-Datei.

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"
}

Weitere Informationen zu den Argumenten und Attributen finden Sie in der Terraform-Dokumentation für Autorisierungsressourcen.

Nächste Schritte

Nachdem Sie diese Schritte durchgeführt haben, damit Image Service für VPC auf Bilder in Object Storage zugreifen oder Bilder nach Object Storage exportieren kann, fahren Sie mit einem der folgenden Themen fort: