Creazione di un'autorizzazione S2S per concedere l'accesso a IBM Cloud Logs a IBM® Event Streams for IBM Cloud®

Utilizzare IBM Cloud® Identity and Access Management (IAM) per creare un'autorizzazione che conceda IBM Cloud Logs l'accesso al servizio IBM® Event Streams for IBM Cloud®.

Prima di iniziare

Ruoli di accesso al servizio

È necessario assegnare il ruolo Writer per gestire l'integrazione della sorgente con il servizio IBM® Event Streams for IBM Cloud®.

Creare un'autorizzazione tramite la console

Completa i seguenti passi:

  1. Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Autorizzazioni.

  2. Fai clic su Crea.

  3. Selezionare un conto sorgente eseguendo una delle seguenti operazioni.

    • Se il servizio di origine che deve accedere al servizio di destinazione si trova in questo account, selezionare Questo account.

    • Se il servizio di origine che deve accedere al servizio di destinazione si trova in un account diverso, selezionare Altro account. Quindi, inserire l'ID dell'account di origine.

  4. Selezionare Cloud Logs come servizio di origine. Quindi, impostare l'ambito dell'accesso eseguendo una delle seguenti operazioni.

    • Selezionare Tutte le risorse per concedere l'accesso a tutte le istanze dell'account.

    • Selezionare Istanza di servizio sorgente per concedere l'accesso a 1 istanza IBM Cloud Logs.

  5. Selezionare Event Streams come servizio di destinazione. Quindi, impostare l'ambito dell'accesso eseguendo una delle seguenti operazioni.

    • Per concedere l'accesso a tutte le IBM® Event Streams for IBM Cloud® istanze e risorse dell'account, selezionare Tutte le risorse.

    • Per concedere l'accesso a un'istanza specifica, selezionare la singola istanza configurando Risorse basate sugli attributi selezionati > Istanza di servizio.

  6. Nella sezione Accesso al servizio, selezionare il ruolo da assegnare al servizio di origine che accede al servizio di destinazione.

    Selezionare Writer per autorizzare lo streaming verso IBM® Event Streams for IBM Cloud®.

    Se si dispone dell'autorizzazione IAM per creare criteri e autorizzazioni, è possibile concedere solo il livello di accesso di cui si dispone come utente del servizio di destinazione. Ad esempio, se si dispone dell'accesso come spettatore per il servizio di destinazione, è possibile assegnare solo il ruolo di spettatore per l'autorizzazione. Se si tenta di assegnare un'autorizzazione più elevata, come quella di amministratore, potrebbe sembrare che l'autorizzazione sia concessa, tuttavia verrà assegnata solo l'autorizzazione di livello più alto che si possiede per il servizio di destinazione, cioè viewer.

  7. Fai clic su Autorizza.

Se si crea un'autorizzazione tra un servizio di un altro account e un servizio di destinazione del proprio account corrente, è necessario avere accesso solo alla risorsa di destinazione. Per il conto sorgente è sufficiente il numero di conto

Creazione di un'autorizzazione tramite la CLI

Eseguire il comando seguente per creare un'autorizzazione per il servizio IBM Cloud Logs.

ibmcloud iam authorization-policy-create logs messagehub "Writer" [--source-service-instance-name SOURCE_SERVICE_INSTANCE_NAME | --source-service-instance-id SOURCE_SERVICE_INSTANCE_ID] [--target-service-instance-name TARGET_SERVICE_INSTANCE_NAME | --target-service-instance-id TARGET_SERVICE_INSTANCE_ID]

Per ulteriori informazioni su tutti i parametri disponibili per questo comando, vedere ibmcloud iam authorization-policy-create.

Creare un'autorizzazione utilizzando Terraform

Prima di creare un'autorizzazione con Terraform, accertarsi di aver completato quanto segue:

  • Installare la CLI di Terraform e configurare il plug-in IBM Cloud Provider per Terraform. Per ulteriori informazioni, vedere il tutorial Iniziare con Terraform su IBM Cloud. Il plug-in astrae le API IBM Cloud utilizzate per completare questo compito.
  • Creare un file di configurazione di Terraform chiamato main.tf. In questo file, si definiscono le risorse usando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, consultare la documentazione di Terraform.

Per creare un'autorizzazione utilizzando Terraform, procedere come segue:

  1. Creare una politica di autorizzazione tra i servizi utilizzando l'argomento della risorsa ibm_iam_authorization_policy nel file main.tf.

    L'esempio seguente crea un'autorizzazione tra 2 servizi:

    resource "ibm_iam_authorization_policy" "policy" {
     source_service_name = "logs"
     target_service_name = "messagehub"
     roles               = ["Writer"]
     description         = "Authorization Policy"
     transaction_id     = "terraformAuthorizationPolicy"
    }
    

    L'esempio seguente crea un'autorizzazione tra due istanze di servizio specifiche:

    resource "ibm_iam_authorization_policy" "policy" {
      source_service_name         = "logs"
      source_resource_instance_id = ibm_resource_instance.instance1.guid
      target_service_name         = "messagehub"
      target_resource_instance_id = ibm_resource_instance.instance2.guid
      roles                       = ["Writer"]
    }
    

    La risorsa ibm_iam_authorization_policy richiede il servizio di origine, il servizio di destinazione e il ruolo. Al servizio di origine viene concesso l'accesso al servizio di destinazione e il ruolo è il livello di autorizzazione che l'accesso consente. Opzionalmente, è possibile aggiungere una descrizione dell'autorizzazione e l'ID della transazione.

    • È possibile fornire un indirizzo target_resource_instance_id per l'ambito di un'istanza di destinazione IBM® Event Streams for IBM Cloud®.

    • Per ulteriori esempi, consultare la documentazione di Terraform per le risorse di autorizzazione.

  2. Dopo aver completato la creazione del file di configurazione, inizializzare la CLI di Terraform. Per ulteriori informazioni, vedere Inizializzazione delle directory di lavoro.

    terraform init
    
  3. Eseguire il provisioning delle risorse dal file main.tf. Per ulteriori informazioni, vedere Provisioning dell'infrastruttura con Terraform.

    1. Eseguire terraform plan per generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.

      terraform plan
      
    2. Eseguire terraform apply per creare le risorse definite nel piano.

      terraform apply
      

Creare un'autorizzazione utilizzando l'API

Per autorizzare l'accesso di un servizio di origine a un servizio di destinazione, utilizzare l'API IAM Policy Management. Vedere il seguente esempio API per creare un metodo di criterio con l'opzione type=authorization specificata per un obiettivo event-notifications.

Gli attributi supportati per la creazione di un criterio di autorizzazione dipendono da ciò che ogni servizio supporta. Per ulteriori informazioni sugli attributi supportati per ciascun servizio, consultare la documentazione dei servizi in uso.

curl --request POST \
  --url https://iam.cloud.ibm.com/v1/policies \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "type": "authorization",
    "subjects": [
        {
            "attributes": [
                {
                    "name": "accountId",
                    "value": "<account-id>"
                },
                {
                    "name": "serviceName",
                    "value": "logs"
                }
            ]
        }
    ],
    "roles": [
        {
            "role_id": "crn:v1:bluemix:public:event-notifications::::serviceRole:Reader"
        }
    ],
    "resources": [
        {
            "attributes": [
                {
                    "name": "serviceName",
                    "value": "messagehub"
                }
            ]
        }
    ]
}'