Crear una autorización S2S para conceder IBM Cloud Logs acceso a IBM® Event Streams for IBM Cloud®
Utilice IBM Cloud® Identity and Access Management (IAM) para crear una autorización que conceda IBM Cloud Logs acceso al servicio IBM® Event Streams for IBM Cloud®.
Antes de empezar
-
Lea sobre 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.
-
El servicio de destino se encuentra siempre en la cuenta en la que se crea la autorización.
-
La autorización que defina para el servicio IBM Cloud Logs requiere que tenga el rol
Administratorpara el objetivo IBM® Event Streams for IBM Cloud®.
Roles de acceso al servicio
Debe otorgar el rol Writer para manejar la integración de la fuente con el servicio IBM® Event Streams for IBM Cloud®.
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 realizando una de las siguientes acciones.
-
Si el servicio de origen que necesita acceso al servicio de destino está en esta cuenta, seleccione Esta cuenta.
-
Si el servicio de origen que necesita acceso al servicio de destino está en una cuenta diferente, seleccione Otra cuenta. A continuación, especifique el ID de cuenta de la cuenta de origen.
-
-
Seleccione
Cloud Logscomo servicio de origen. A continuación, establece el alcance del acceso realizando una de las siguientes acciones.-
Seleccione Todos los recursos para conceder acceso a todas las instancias de la cuenta.
-
Seleccione Source service instance para conceder acceso a 1 instancia IBM Cloud Logs.
-
-
Seleccione Event Streams como servicio de destino. A continuación, establece el alcance del acceso realizando una de las siguientes acciones.
-
Para conceder acceso a todas las instancias y recursos IBM® Event Streams for IBM Cloud® 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 la función para asignar acceso al servicio de origen que accede al servicio de destino.
Seleccione Escritor para autorizar la transmisión a IBM® Event Streams for IBM Cloud®.
Si tiene permiso de IAM para crear políticas y autorizaciones, puede conceder sólo el nivel de acceso que tenga como usuario del servicio de destino. Por ejemplo, si tiene acceso de espectador para el servicio de destino, puede asignar sólo el rol de espectador para la autorización. Si intenta asignar un permiso superior, como el de administrador, puede parecer que se concede el permiso, sin embargo, sólo se asignará el permiso de nivel más alto que tenga para el servicio de destino, es decir, el de espectador.
-
Pulse Autorizar.
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, solo necesita el número de cuenta.
Creación de una autorización utilizando la CLI
Ejecute el siguiente comando para crear una autorización para el servicio IBM Cloud Logs.
ibmcloud iam authorization-policy-create logs messagehub "Writer" [--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 mediante Terraform, asegúrese de haber completado lo siguiente:
- Instale la CLI de Terraform y configure el complemento IBM Cloud Provider para Terraform. Para obtener más información, consulte el tutorial de Cómo empezar con 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 mediante 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 = "logs" target_service_name = "messagehub" roles = ["Writer"] 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 = "logs" source_resource_instance_id = ibm_resource_instance.instance1.guid target_service_name = "messagehub" target_resource_instance_id = ibm_resource_instance.instance2.guid roles = ["Writer"] }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® Event Streams for IBM Cloud®. -
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 obtener más información, consulte Inicialización de directorios de trabajo.
terraform init -
Aprovisiona los recursos del archivo
main.tf. Para obtener más información, consulte Provisionamiento de infraestructura con Terraform.-
Ejecuta
terraform planpara generar un plan de ejecución Terraform para previsualizar las acciones propuestas.terraform plan -
Ejecuta
terraform applypara crear los recursos que se definen 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": "messagehub"
}
]
}
]
}'