Creación de una autorización S2S para otorgar IBM Cloud Logs acceso a IBM Cloud Event Notifications

Utilice IBM Cloud® Identity and Access Management (IAM) para crear una autorización que conceda a IBM Cloud Logs acceso al servicio IBM Cloud Event Notifications.

Antes de empezar

Roles de acceso al servicio

Puede seleccionar cualquiera de los roles siguientes que el origen puede utilizar para interactuar con el destino. Solo puede otorgar el nivel de acceso que tiene como usuario del destino que ha seleccionado.

  • Event Source Manager: debe otorgar el rol Event Source Manager para manejar la integración de origen con el servicio IBM Cloud Event Notifications.
  • Reader: debe otorgar el rol Reader para realizar acciones de sólo lectura dentro de un servicio como, por ejemplo, ver recursos específicos del servicio.
  • Viewer: Debe conceder el rol Viewer para listar las instancias de servicio IBM Cloud Event Notifications.

Para obtener más información, consulte Creación de una autorización S2S para trabajar con el servicio IBM Cloud Event Notifications.

Crear una autorización a través de la consola

Debe crear la autorización de servicio a servicio en la cuenta IBM Cloud en la que se aprovisiona la instancia IBM Cloud Event Notifications.

Cuando configure la autorización, debe tener acceso y permisos para crear autorizaciones en la cuenta en la que está disponible la instancia IBM Cloud Event Notifications. Para la cuenta en la que está disponible la instancia IBM Cloud Logs, sólo necesita el número de cuenta para configurar la autorización de servicio a servicio entre cuentas.

Complete los pasossiguientes:

  1. En la consola de IBM Cloud, pulse Gestionar > Acceso (IAM) y seleccione Autorizaciones.

  2. Pulse Crear.

  3. Seleccione una cuenta de origen.

    Si la instancia IBM Cloud Event Notifications y la instancia IBM Cloud Logs están en la misma cuenta, seleccione Esta cuenta.

    Si la instancia IBM Cloud Event Notifications y la instancia IBM Cloud Logs están en cuentas diferentes, seleccione Otra cuenta. A continuación, introduzca el ID de la cuenta en la que está disponible la instancia IBM Cloud Logs.

  4. Seleccione Cloud Logs como servicio de origen. A continuación, establezca el ámbito del acceso.

    Seleccione Todos los recursos para otorgar acceso a todas las instancias de la cuenta.

    Seleccione Instancia de servicio de origen para otorgar acceso a 1 instancia de IBM Cloud Logs.

  5. Seleccione Notificación de sucesos como servicio de destino. A continuación, establezca el ámbito del acceso.

    Para otorgar acceso a todas las instancias y recursos de IBM Cloud Event Notifications en la cuenta, seleccione Todos los recursos.

    Para otorgar acceso a una instancia específica, seleccione una única instancia configurando Recursos basados en los atributos seleccionados > Instancia de servicio.

  6. En la sección Acceso al servicio, seleccione la función para asignar acceso al servicio de origen que accede al servicio de destino.

    Seleccione Lector para realizar acciones de sólo lectura dentro de un servicio, como ver recursos específicos del servicio.

    Seleccione Visor para listar las instancias del servicio IBM Cloud Event Notifications.

    Seleccione Gestor de origen de sucesos para manejar la integración de origen con el servicio de notificaciones de sucesos.

  7. Pulse Autorizar.

Creación de una autorización utilizando la CLI

Ejecute el mandato siguiente para crear una autorización para el servicio 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]

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 utilizando Terraform, asegúrese de que ha completado lo siguiente:

  • Instale la CLI de Terraform y configure el plugin de proveedor de IBM Cloud para Terraform. Para obtener más información, consulte la guía de aprendizaje de Iniciació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, puede definir recursos utilizando HashiCorp Configuration Language. Para más información, consulte la documentación de Terraform.

Siga los siguientes pasos para crear una autorización mediante Terraform:

  1. Cree una política de autorización entre servicios utilizando el argumento de recurso ibm_iam_authorization_policy en el archivo main.tf.

    El ejemplo siguiente crea una autorización entre 2 servicios:

    resource "ibm_iam_authorization_policy" "policy" {
     source_service_name = "logs"
     target_service_name = "event-notifications"
     roles               = ["Reader"]
     description         = "Authorization Policy"
     transaction_id     = "terraformAuthorizationPolicy"
    }
    

    El ejemplo siguiente crea una autorización entre 2 instancias de servicio específicas:

    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"]
    }
    

    El recurso ibm_iam_authorization_policy requiere el servicio de origen, el servicio de destino y el rol. Al servicio de origen se le otorga 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.

  2. Después de terminar de crear el archivo de configuración, inicialice la CLI de Terraform. Para obtener más información, consulte Inicialización de directorios de trabajo.

    terraform init
    
  3. Suministre los recursos desde el archivo main.tf. Para obtener más información, consulte Infraestructura de suministro con Terraform.

    1. Ejecute terraform plan para generar un plan de ejecución de Terraform para obtener una vista previa de las acciones propuestas.

      terraform plan
      
    2. Ejecute terraform apply para 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 destino event-notifications.

Los atributos admitidos para crear una política de autorización dependen de lo que admite cada servicio. Para obtener más información sobre los atributos admitidos para cada servicio, consulte la documentación de los servicios que esté utilizando.

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"
                }
            ]
        }
    ]
}'