Creazione di un'autorizzazione S2S per concedere l'accesso a IBM Cloud Logs a IBM Cloud Event Notifications
Utilizzare IBM Cloud® Identity and Access Management (IAM) per creare un'autorizzazione che conceda a IBM Cloud Logs l'accesso al servizio IBM Cloud Event Notifications.
Prima di iniziare
-
Leggi Gestione delle autorizzazioni per concedere l'accesso tra i servizi.
-
È necessario avere accesso a IAM per gestire le autorizzazioni tra i servizi nell'account IBM Cloud in cui è stata fornita l'istanza IBM Cloud Event Notifications. Per ulteriori informazioni, vedi Autorizzazioni per gestire le autorizzazioni.
-
L'autorizzazione definita per il servizio IBM Cloud Logs richiede il ruolo
Administratorper l'istanza IBM Cloud Event Notifications.
Ruoli di accesso al servizio
È possibile selezionare uno dei seguenti ruoli che l'origine può utilizzare per interagire con la destinazione. È possibile concedere solo il livello di accesso di cui si dispone come utente della destinazione selezionata.
Event Source Manager: devi concedere il ruoloEvent Source Managerper gestire l'integrazione di origine con il servizio IBM Cloud Event Notifications.Reader: devi concedere il ruoloReaderper eseguire azioni di sola lettura all'interno di un servizio come la visualizzazione delle risorse specifiche del servizio.Viewer: È necessario assegnare il ruoloViewerper elencare le istanze del servizio IBM Cloud Event Notifications.
Per ulteriori informazioni, vedere Creazione di un'autorizzazione S2S per lavorare con il servizio IBM Cloud Event Notifications.
Creazione di un'autorizzazione tramite console
È necessario creare l'autorizzazione da servizio a servizio nell'account IBM Cloud in cui è stata fornita l'istanza IBM Cloud Event Notifications.
Quando si configura l'autorizzazione, è necessario disporre dell'accesso e dei permessi per creare autorizzazioni nell'account in cui è disponibile l'istanza IBM Cloud Event Notifications. Per l'account in cui è disponibile l'istanza IBM Cloud Logs, è necessario solo il numero di account per configurare l'autorizzazione cross-account da servizio a servizio.
Completa i seguenti passi:
-
Nella console IBM Cloud , fare clic su Gestisci > Accesso (IAM) e selezionare Autorizzazioni.
-
Fai clic su Crea.
-
Selezionare un account di origine.
Se l'istanza IBM Cloud Event Notifications e l'istanza IBM Cloud Logs sono nello stesso account, selezionare Questo account.
Se l'istanza IBM Cloud Event Notifications e l'istanza IBM Cloud Logs si trovano in account diversi, selezionare Altro account. Quindi, inserire l'ID dell'account in cui è disponibile l'istanza IBM Cloud Logs.
-
Selezionare
Cloud Logscome servizio di origine. Quindi, impostare l'ambito dell'accesso.Seleziona Tutte le risorse per concedere l'accesso per tutte le istanze nell'account.
Seleziona Istanza del servizio di origine per concedere l'accesso a 1 istanza IBM Cloud Logs.
-
Selezionare Notifica eventi come servizio di destinazione. Quindi, impostare l'ambito dell'accesso.
Per concedere l'accesso a tutte le istanze e risorse IBM Cloud Event Notifications nell'account, seleziona Tutte le risorse.
Per concedere l'accesso a un'istanza specifica, selezionare una singola istanza configurando Risorse basate su attributi selezionati > Istanza del servizio.
-
Nella sezione Accesso al servizio, selezionare il ruolo per assegnare l'accesso al servizio di origine che accede al servizio di destinazione.
Selezionare Reader per eseguire azioni di sola lettura all'interno di un servizio, come la visualizzazione di risorse specifiche del servizio.
Selezionare Viewer per elencare le istanze del servizio IBM Cloud Event Notifications.
Selezionare Gestore origini eventi per gestire l'integrazione di origine con il Servizio notifiche eventi.
-
Fai clic su Autorizza.
Creazione di un'autorizzazione tramite la CLI
Immetti il seguente comando per creare un'autorizzazione per il servizio IBM Cloud Logs.
ibmcloud iam authorization-policy-create logs event-notifications "Reader" [--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, vedi ibmcloud iam authorization - policy - create.
Creazione di un'autorizzazione utilizzando Terraform
Prima di poter creare un'autorizzazione utilizzando Terraform, assicurati di aver completato quanto segue:
- Installa la CLI Terraform e configura il plug-in Provider IBM Cloud per Terraform. Per ulteriori informazioni, vedi l'esercitazione Introduzione a 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, vedi la documentazione Terraform.
Utilizza la seguente procedura per creare un'autorizzazione utilizzando Terraform:
-
Crea una politica di autorizzazione tra i servizi utilizzando l'argomento della risorsa
ibm_iam_authorization_policynel filemain.tf.Il seguente esempio crea un'autorizzazione tra 2 servizi:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "logs" target_service_name = "event-notifications" roles = ["Reader"] description = "Authorization Policy" transaction_id = "terraformAuthorizationPolicy" }Il seguente esempio crea un'autorizzazione tra 2 istanze del servizio specifico:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "logs" source_resource_instance_id = ibm_resource_instance.instance1.guid source_service_account = target_service_name = "event-notifications" target_resource_instance_id = ibm_resource_instance.instance2.guid roles = ["Reader"] }La risorsa
ibm_iam_authorization_policynecessita del servizio di origine, del servizio di destinazione e del ruolo. Al servizio di origine viene concesso l'accesso al servizio di destinazione e il ruolo è il livello di autorizzazione consentito dall'accesso. Facoltativamente, è possibile aggiungere una descrizione per l'autorizzazione e un ID transazione.-
È possibile fornire un indirizzo
target_resource_instance_idper l'ambito di un'istanza di destinazione IBM Cloud Event Notifications. -
Per ulteriori esempi, consulta la Documentazione Terraform per le risorse di autorizzazione.
-
-
Dopo aver terminato la creazione del file di configurazione, inizializza la CLI Terraform. Per ulteriori informazioni, consultare la sezione Inizializzazione delle directory di lavoro.
terraform init -
Eseguire il provisioning delle risorse dal file
main.tf. Per ulteriori informazioni, vedi Provisioning dell'infrastruttura con Terraform.-
Eseguire
terraform planper generare un piano di esecuzione Terraform per visualizzare in anteprima le azioni proposte.terraform plan -
Eseguire
terraform applyper creare le risorse definite nel piano.terraform apply
-
Creare un'autorizzazione utilizzando l'API
Per autorizzare un servizio di origine a un servizio di destinazione, utilizza l'API IAM Policy Management. Vedi il seguente esempio API per creare un metodo della politica con il type=authorization specificato per una destinazione event-notifications.
Gli attributi supportati per creare una politica di autorizzazione dipendono da ciò che ogni servizio supporta. Per ulteriori informazioni sugli attributi supportati per ciascun servizio, consulta la documentazione per i servizi che stai utilizzando.
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": "event-notifications"
}
]
}
]
}'