Création d'une autorisation S2S pour accorder à IBM Cloud Logs l'accès à IBM® Event Streams for IBM Cloud®
Utilisez IBM Cloud® Identity and Access Management (IAM) pour créer une autorisation qui donne IBM Cloud Logs accès au service IBM® Event Streams for IBM Cloud®.
Avant de commencer
-
Lire la suite de Gestion des autorisations pour accorder l'accès entre les services.
-
Vous devez avoir accès au service cible pour gérer les autorisations entre les services. Pour plus d'informations, voir Permissions de gérer les autorisations.
-
Le service cible se trouve toujours dans le compte où l'autorisation est créée.
-
L'autorisation que vous définissez pour le service IBM Cloud Logs nécessite que vous ayez le rôle
Administratorpour la cible IBM® Event Streams for IBM Cloud®.
Rôles d'accès au service
Vous devez accorder le rôle Writer pour gérer l'intégration de la source avec le service IBM® Event Streams for IBM Cloud®
Création d'une autorisation via la console
Procédez comme suit :
-
Dans la console IBM Cloud, cliquez sur Gérer > Accès (IAM), puis sélectionnez Autorisations.
-
Cliquez sur Créer.
-
Sélectionnez un compte source en effectuant l'une des opérations suivantes.
-
Si le service source qui a besoin d'accéder au service cible se trouve dans ce compte, sélectionnez Ce compte.
-
Si le service source qui a besoin d'accéder au service cible se trouve dans un autre compte, sélectionnez Autre compte. Entrez ensuite l'ID de compte du compte source.
-
-
Sélectionnez
Cloud Logscomme service source. Ensuite, définissez la portée de l'accès en effectuant l'une des opérations suivantes.-
Sélectionnez Toutes les ressources pour accorder l'accès à toutes les instances du compte.
-
Sélectionnez Source service instance pour accorder l'accès à 1 IBM Cloud Logs instance.
-
-
Sélectionnez Event Streams comme service cible. Ensuite, définissez la portée de l'accès en effectuant l'une des opérations suivantes.
-
Pour accorder l'accès à toutes les instances et ressources du compte, sélectionnez Toutes les ressources.
-
Pour accorder l'accès à une instance spécifique, sélectionnez une seule instance en configurant Ressources basées sur les attributs sélectionnés > Instance du service.
-
-
Dans la section Accès au service, sélectionnez le rôle pour attribuer l'accès au service source qui accède au service cible.
Sélectionnez Writer pour autoriser la diffusion en continu vers IBM® Event Streams for IBM Cloud®.
Si vous disposez de l'autorisation IAM de créer des politiques et des autorisations, vous ne pouvez accorder que le niveau d'accès dont vous disposez en tant qu'utilisateur du service cible. Par exemple, si vous disposez d'un accès spectateur pour le service cible, vous ne pouvez attribuer que le rôle de spectateur pour l'autorisation. Si vous tentez d'attribuer une autorisation plus élevée, telle qu'administrateur, il peut sembler que l'autorisation est accordée, mais seule l'autorisation la plus élevée que vous avez pour le service cible, c'est-à-dire spectateur, sera attribuée.
-
Cliquez sur Autoriser.
Si vous créez une autorisation entre un service d'un autre compte et un service cible de votre compte en cours, vous devez avoir accès uniquement à la ressource cible. Pour le compte source, vous n'avez besoin que du numéro de compte.
Création d'une autorisation à l'aide de l'interface de ligne de commande
Exécutez la commande suivante pour créer une autorisation pour le service 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]
Pour plus de détails sur les paramètres disponibles de cette commande, voir ibmcloud iam authorization-policy-create.
Création d'une autorisation à l'aide de Terraform
Avant de pouvoir créer une autorisation à l'aide de Terraform, assurez-vous d'avoir effectué les opérations suivantes :
- Installez le CLI Terraform et configurez le plug-in IBM Cloud Provider pour Terraform. Pour plus d'informations, consultez le tutoriel pour Démarrer avec Terraform sur IBM Cloud. Ce plug-in résume les API IBM Cloud utilisées pour effectuer cette tâche.
- Créez un fichier de configuration Terraform nommé
main.tf. Dans ce fichier, vous définissez les ressources en utilisant le HashiCorp Configuration Language. Pour plus d'informations, voir la documentation de Terraform.
Suivez les étapes suivantes pour créer une autorisation à l'aide de Terraform :
-
Créez une politique d'autorisation entre les services en utilisant l'argument de ressource
ibm_iam_authorization_policydans votre fichiermain.tf.L'exemple suivant crée une autorisation entre deux services :
resource "ibm_iam_authorization_policy" "policy" { source_service_name = "logs" target_service_name = "messagehub" roles = ["Writer"] description = "Authorization Policy" transaction_id = "terraformAuthorizationPolicy" }L'exemple suivant crée une autorisation entre deux instances de service spécifiques :
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"] }La ressource
ibm_iam_authorization_policynécessite le service source, le service cible et le rôle. Le service source est autorisé à accéder au service cible, et le rôle est le niveau de permission que l'accès autorise. En option, vous pouvez ajouter une description de l'autorisation et un numéro d'identification de la transaction.-
Vous pouvez fournir un
target_resource_instance_idpour délimiter une instance cible IBM® Event Streams for IBM Cloud®. -
Pour plus d'exemples, voir la Documentation Terraform pour les ressources d'autorisation.
-
-
Une fois que vous avez fini de construire votre fichier de configuration, initialisez le CLI Terraform. Pour plus d'informations, voir Initialisation des répertoires de travail.
terraform init -
Mise à disposition des ressources du fichier
main.tf. Pour plus d'informations, voir Provisionnement de l'infrastructure avec Terraform.-
Exécutez
terraform planpour générer un plan d'exécution Terraform afin de prévisualiser les actions proposées.terraform plan -
Exécutez
terraform applypour créer les ressources définies dans le plan.terraform apply
-
Création d'une autorisation à l'aide de l'API
Pour permettre à un service source d'accéder à un service cible, utilisez l'API de gestion des règles IAM. Voir l'exemple d'API suivant pour créer une méthode de stratégie avec l'adresse
type=authorization spécifiée pour une cible event-notifications.
Les attributs pris en charge pour la création d'une règle d'autorisation dépendent des éléments pris en charge par chaque service. Pour plus d'informations sur les attributs pris en charge pour chaque service, consultez la documentation relative aux services que vous utilisez.
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"
}
]
}
]
}'