Creare un'autorizzazione S2S per lavorare con il servizio IBM® Event Streams for IBM Cloud®
Utilizzare IBM Cloud® Identity and Access Management (IAM) per creare un'autorizzazione che conceda a IBM Cloud Activity Tracker Event Routing l'accesso al servizio IBM® Event Streams for IBM Cloud®.
Prima di iniziare
-
Leggete Gestione delle autorizzazioni per garantire l'accesso tra i servizi.
-
Per gestire l'autorizzazione tra i servizi è necessario avere accesso al servizio di destinazione. Per ulteriori informazioni, vedere Autorizzazioni per gestire le autorizzazioni.
-
L'autorizzazione definita per il servizio IBM Cloud Activity Tracker Event Routing richiede il ruolo
Administrator
per l'obiettivo IBM® Event Streams for IBM Cloud®. -
Assicurarsi di definire l'autorizzazione nell'account in cui si trova il bucket.
-
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 di origine, è necessario solo l'ID del conto.
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 attraverso la console
Completa i seguenti passi:
-
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Autorizzazioni.
-
Fai clic su Crea.
-
Selezionare un conto sorgente.
Se IBM Cloud Activity Tracker Event Routing e l'istanza IBM® Event Streams for IBM Cloud® sono nello stesso account in cui si sta definendo l'autorizzazione, selezionare Questo account.
Se IBM Cloud Activity Tracker Event Routing e l'istanza IBM® Event Streams for IBM Cloud® sono in account diversi, selezionare Altro account. Quindi, inserire l'ID dell'account di origine, cioè l'account in cui IBM Cloud Activity Tracker Event Routing deve essere configurato per inviare i dati all'istanza.
-
Selezionare
Activity Tracker Event Routing
come servizio di origine. Quindi, impostare l'ambito dell'accesso su Tutte le risorse. -
Selezionare Event Streams come servizio di destinazione. Quindi, impostare l'ambito dell'accesso.
Per concedere l'accesso a tutte le istanze e risorse IBM® Event Streams for IBM Cloud® dell'account, selezionare Tutte le risorse.
Per concedere l'accesso a un'istanza specifica, selezionare la singola istanza configurando Risorse in base agli attributi selezionati > Istanza di servizio.
-
Nella sezione Accesso al servizio, selezionare il ruolo per assegnare l'accesso al servizio di origine che accede al servizio di destinazione.
Selezionare Writer per autorizzare lo streaming su IBM® Event Streams for IBM Cloud®.
-
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 seguente comando per creare un'autorizzazione per il servizio IBM Cloud Activity Tracker Event Routing.
ibmcloud iam authorization-policy-create atracker messagehub "Writer" [--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.
Creazione di un account incrociato di autorizzazione tramite CLI
Eseguire il seguente comando per creare un'autorizzazione nell'account in cui si trova il servizio di destinazione quando il servizio IBM Cloud Activity Tracker Event Routing e il servizio di destinazione si trovano in account diversi:
ibmcloud iam authorization-policy-create atracker cloud-object-storage "Object Writer" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID] [--source-service-account SOURCE_SERVICE_ACCOUNT_GUID ]
Dove è possibile impostare i seguenti parametri per concedere l'accesso a un singolo bucket:
TARGET_SERVICE_INSTANCE_NAME
: CRN dell'istanza IBM® Event Streams for IBM Cloud®.SOURCE_SERVICE_ACCOUNT_GUID
: Impostare il GUID dell'account in cui IBM Cloud Activity Tracker Event Routing è configurato per inviare i dati al servizio di destinazione. Utilizzare questa opzione solo se il servizio di origine proviene da un altro account.
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 del provider IBM Cloud Per Terraform. Per ulteriori informazioni, vedere il tutorial su Come iniziare con Terraform su IBM Cloud. Il plug-in astrae le API IBM Cloud utilizzate per completare questa attività.
- Creare un file di configurazione di Terraform chiamato
main.tf
. In questo file si definiscono le risorse utilizzando il linguaggio di configurazione HashiCorp. Per ulteriori informazioni, consultare la documentazione di Terraform.
Per creare un'autorizzazione utilizzando Terraform, procedere come segue:
-
Creare un criterio di autorizzazione tra i servizi utilizzando l'argomento della risorsa
ibm_iam_authorization_policy
nel filemain.tf
.L'esempio seguente crea un'autorizzazione tra 2 servizi:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "atracker" 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 = "atracker" 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.-
Si può fornire un
target_resource_instance_id
per avere un'istanza di destinazione IBM® Event Streams for IBM Cloud®. -
Per ulteriori esempi, consultare la documentazione di Terraform per le risorse di autorizzazione.
-
-
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
-
Predisporre le risorse dal file
main.tf
. Per ulteriori informazioni, vedere Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform plan
per generare un piano di esecuzione di Terraform per visualizzare in anteprima le azioni proposte.terraform plan
-
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 di API per creare un metodo di criterio
con type=authorization
specificato per una destinazione 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": "atracker"
}
]
}
],
"roles": [
{
"role_id": "crn:v1:bluemix:public:iam::::serviceRole:Writer"
}
],
"resources": [
{
"attributes": [
{
"name": "accountId",
"value": "CUSTOMER_ACCOUNT_ID"
},
{
"name": "serviceName",
"value": "messagehub"
},
{
"name": "serviceInstance",
"value": "IES_SERVICE_INSTANCE"
}
]
}
]
}'