Creación de una autorización S2S para otorgar IBM Cloud Activity Tracker Event Routing acceso para enviar datos a IBM Cloud Logs
Utilice IBM Cloud® Identity and Access Management (IAM) para crear una autorización que otorgue IBM Cloud Activity Tracker Event Routing acceso al servicio IBM Cloud Logs.
Debe configurar la autorización de servicio a servicio ( S2S ) en la cuenta IBM Cloud donde se encuentra la instancia IBM Cloud Logs.
Antes de empezar
-
Más información sobre la gestión de autorizaciones para conceder acceso entre servicios.
-
Debe tener acceso al servicio de destino para gestionar la autorización entre servicios. Para obtener más información, consulte Permisos para gestionar autorizaciones.
-
La autorización que defina para el servicio IBM Cloud Activity Tracker Event Routing requiere que tenga
Administratorrol para la instancia de destino IBM Cloud Logs. -
Asegúrese de que está definiendo la autorización en la cuenta donde se encuentra la instancia IBM Cloud Logs.
-
Si crea una autorización entre un servicio en otra cuenta y un servicio de destino en la cuenta actual, solo debe tener acceso al recurso de destino. Para la cuenta de origen, sólo necesita el ID de la cuenta.
Roles de acceso al servicio
Debe otorgar el rol Sender para conceder permisos para enviar datos a la instancia IBM Cloud Logs.
Crear una autorización a través de la consola
Complete los pasossiguientes:
-
En la consola de IBM Cloud, pulse Gestionar > Acceso (IAM) y seleccione Autorizaciones.
-
Pulse Crear.
-
Seleccione una cuenta de origen.
Si IBM Cloud Activity Tracker Event Routing y la instancia IBM Cloud Logs están en la misma cuenta donde está definiendo la autorización, seleccione Esta cuenta.
Si IBM Cloud Activity Tracker Event Routing y la instancia IBM Cloud Logs están en cuentas diferentes, seleccione Otra cuenta. Luego, ingrese el ID de la cuenta de origen, es decir, la cuenta donde se configurará IBM Cloud Activity Tracker Event Routing para enviar datos a una instancia de IBM Cloud Logs.
-
Seleccione
Activity Tracker Event Routingcomo servicio de origen. A continuación, establezca el ámbito de acceso en Todos los recursos. -
Seleccione Cloud Logs como servicio de destino. A continuación, establezca el alcance del acceso.
Para conceder acceso a todas las instancias y recursos de la cuenta, seleccione Todos los recursos.
Para conceder acceso a una instancia específica, seleccione una única instancia configurando Recursos basados en atributos seleccionados > Instancia de servicio.
-
En la sección Acceso al servicio, seleccione Remitente para asignar IBM Cloud Activity Tracker Event Routing acceso al bucket.
-
Pulse Autorizar.
Creación de una autorización utilizando la CLI
Ejecute el siguiente comando para crear una autorización para el servicio IBM Cloud Activity Tracker Event Routing.
ibmcloud iam authorization-policy-create atracker logs "Sender" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID]
Donde puede establecer los siguientes parámetros para conceder acceso a un único bucket:
TARGET_SERVICE_INSTANCE_ID: ID de la instancia IBM Cloud Logs.
Para obtener más información sobre todos los parámetros que están disponibles para este mandato, consulte ibmcloud iam authorization-policy-create.
Creación de cuentas cruzadas de autorización mediante la CLI
Ejecute el siguiente comando para crear una autorización en la cuenta en la que se encuentra el servicio de destino cuando el servicio IBM Cloud Activity Tracker Event Routing y el servicio de destino se encuentren en cuentas diferentes:
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 ]
Donde puede establecer los siguientes parámetros para conceder acceso a un único bucket:
TARGET_SERVICE_INSTANCE_NAME: CRN de la instancia IBM Cloud Logs.SOURCE_SERVICE_ACCOUNT_GUID: Establezca el GUID de la cuenta en la que IBM Cloud Activity Tracker Event Routing está configurado para enviar datos al servicio de destino. Utilice esta opción sólo si el servicio de origen es de otra cuenta.
Para obtener más información sobre todos los parámetros que están disponibles para este mandato, consulte ibmcloud iam authorization-policy-create.
Creación de una autorización utilizando Terraform
Antes de poder crear una autorización mediante Terraform, asegúrese de haber completado lo siguiente:
- Instale la CLI de Terraform y configure el complemento del proveedor IBM Cloud para Terraform. Para obtener más información, consulte el tutorial de Introducción a Terraform en IBM Cloud. El plug-in abstrae las API de IBM Cloud que se utilizan para completar esta tarea.
- Cree un archivo de configuración de Terraform denominado
main.tf. En este archivo, se definen los recursos utilizando el Lenguaje de Configuración HashiCorp. Para más información, consulte la documentación de Terraform.
Siga los siguientes pasos para crear una autorización mediante Terraform:
-
Cree una política de autorización entre servicios utilizando el argumento de recurso
ibm_iam_authorization_policyen su archivomain.tf.El siguiente ejemplo crea una autorización entre 2 servicios:
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "atracker" target_service_name = "logs" roles = ["Sender"] description = "Authorization Policy" transaction_id = "terraformAuthorizationPolicy" }El siguiente ejemplo crea una autorización entre 2 instancias de servicio específicas:
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"] }El recurso
ibm_iam_authorization_policyrequiere el servicio de origen, el servicio de destino y el rol. El servicio de origen tiene acceso al servicio de destino, y el rol es el nivel de permiso que permite el acceso. Opcionalmente, puede añadir una descripción para la autorización y un ID de transacción.-
Puede proporcionar un
target_resource_instance_idpara delimitar una instancia de destino IBM Cloud Logs. -
Para más ejemplos, consulte la documentación de Terraform para recursos de autorización.
-
-
Después de terminar de crear el archivo de configuración, inicializa Terraform CLI. Para más información, consulte Inicializar directorios de trabajo.
terraform init -
Aprovisione los recursos desde el archivo
main.tf. Para obtener más información, consulte Aprovisionamiento de infraestructura con Terraform.-
Ejecute
terraform planpara generar un plan de ejecución Terraform para previsualizar las acciones propuestas.terraform plan -
Ejecute
terraform applypara crear los recursos definidos en el plan.terraform apply
-
Creación de una autorización utilizando la API
Para autorizar a un servicio de origen a acceder a un servicio de destino, utilice la API de gestión de políticas de IAM. Consulte el siguiente ejemplo de API para crear un método de
política con la dirección type=authorization especificada para un bucket cloud-object-storage como destino.
Los atributos admitidos para crear una política de autorización dependen de lo que admite cada servicio.
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"
}
]
}
]
}'