Creare un'autorizzazione S2S per concedere a IBM Cloud Activity Tracker Event Routing l'accesso all'invio di dati a IBM Cloud Logs
Usare 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 Cloud Logs.
È necessario configurare l'autorizzazione da servizio a servizio S2S ) nell'account IBM Cloud in cui si trova l'istanza IBM Cloud Logs.
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
Administratorper l'istanza di destinazione IBM Cloud Logs. -
Assicurarsi di definire l'autorizzazione nell'account in cui si trova l'istanza IBM Cloud Logs.
-
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 Sender per concedere i permessi di invio dei dati all'istanza IBM Cloud Logs.
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 Cloud Logs 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 Cloud Logs 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 a un'istanza IBM Cloud Logs.
-
Selezionare
Activity Tracker Event Routingcome servizio di origine. Quindi, impostare l'ambito dell'accesso su Tutte le risorse. -
Selezionare Cloud Logs come servizio di destinazione. Quindi, impostare l'ambito dell'accesso.
Per concedere l'accesso a tutte le istanze e le risorse 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 Mittente per assegnare l'accesso IBM Cloud Activity Tracker Event Routing al bucket.
-
Fai clic su Autorizza.
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 logs "Sender" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID]
Dove è possibile impostare i seguenti parametri per concedere l'accesso a un singolo bucket:
TARGET_SERVICE_INSTANCE_ID: ID dell'istanza IBM Cloud Logs.
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 la 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 Cloud Logs.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, consultare il tutorial Per 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_policynel filemain.tf.L'esempio seguente crea un'autorizzazione tra 2 servizi:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "atracker" target_service_name = "logs" roles = ["Sender"] 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 = "logs" target_resource_instance_id = ibm_resource_instance.instance2.guid roles = ["Sender"] }La risorsa
ibm_iam_authorization_policyrichiede 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_idper l'ambito di un'istanza di destinazione IBM Cloud Logs. -
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 planper generare un piano di esecuzione di 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 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 type=authorization specificato per un bucket cloud-object-storage come destinazione.
Gli attributi supportati per la creazione di un criterio di autorizzazione dipendono da ciò che ogni servizio supporta.
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:Sender"
}
],
"resources": [
{
"attributes": [
{
"name": "serviceName",
"value": "logs"
},
{
"name": "serviceInstance",
"value": "$CLOUD_LOGS_INSTANCE_ID",
"operator": "stringEquals"
}
]
}
]
}'