Création d'une autorisation S2S pour accorder à IBM Cloud Activity Tracker Event Routing l'accès à l'envoi de données à IBM Cloud Logs
Utilisez IBM Cloud® Identity and Access Management (IAM) pour créer une autorisation qui donne à IBM Cloud Activity Tracker Event Routing l'accès au service IBM Cloud Logs.
Vous devez configurer l'autorisation de service à service S2S ) dans le compte IBM Cloud où se trouve l'instance IBM Cloud Logs.
Avant de commencer
-
Lisez la section 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 Autorisations pour gérer les autorisations.
-
L'autorisation que vous définissez pour le service IBM Cloud Activity Tracker Event Routing nécessite que vous ayez le rôle
Administratorpour l'instance cible IBM Cloud Logs -
Assurez-vous que vous définissez l'autorisation dans le compte où se trouve l'instance IBM Cloud Logs
-
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 de l'ID du compte.
Rôles d'accès au service
Vous devez accorder le rôle Sender pour accorder les permissions d'envoyer des données à l'instance IBM Cloud Logs
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.
Si IBM Cloud Activity Tracker Event Routing et l'instance IBM Cloud Logs se trouvent dans le même compte que celui où vous définissez l'autorisation, sélectionnez Ce compte.
Si IBM Cloud Activity Tracker Event Routing et l'instance IBM Cloud Logs se trouvent dans des comptes différents, sélectionnez Autre compte. Ensuite, saisissez l'ID du compte source, c'est-à-dire le compte où IBM Cloud Activity Tracker Event Routing doit être configuré pour envoyer des données à une instance IBM Cloud Logs.
-
Sélectionnez
Activity Tracker Event Routingcomme service source. Ensuite, définissez l'étendue de l'accès à Toutes les ressources. -
Sélectionnez Cloud Logs comme service cible. Ensuite, définissez le champ d'application de l'accès.
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-la en configurant Ressources basées sur les attributs sélectionnés > Instance de service.
-
Dans la section Accès au service, sélectionnez Expéditeur pour attribuer l'accès IBM Cloud Activity Tracker Event Routing au seau.
-
Cliquez sur Autoriser.
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 Activity Tracker Event Routing
ibmcloud iam authorization-policy-create atracker logs "Sender" [--target-service-instance-id TARGET_SERVICE_INSTANCE_ID]
Vous pouvez y définir les paramètres suivants pour accorder l'accès à un seul godet :
TARGET_SERVICE_INSTANCE_ID: ID de l'instance IBM Cloud Logs
Pour plus de détails sur les paramètres disponibles de cette commande, voir ibmcloud iam authorization-policy-create.
Création d'un compte croisé d'autorisation à l'aide de l'interface de programmation
Exécutez la commande suivante pour créer une autorisation dans le compte où se trouve le service cible lorsque le service IBM Cloud Activity Tracker Event Routing et le service cible se trouvent dans des comptes différents :
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 ]
Vous pouvez y définir les paramètres suivants pour accorder l'accès à un seul godet :
TARGET_SERVICE_INSTANCE_NAME: CRN de l'instance IBM Cloud LogsSOURCE_SERVICE_ACCOUNT_GUID: Définir le GUID du compte où IBM Cloud Activity Tracker Event Routing est configuré pour envoyer des données au service cible. N'utilisez cette option que si le service source provient d'un autre compte.
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 Pour Terraform. Pour plus d'informations, voir 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 langage de configuration HashiCorp. 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 = "atracker" target_service_name = "logs" roles = ["Sender"] 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 = "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 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 Cloud Logs. -
Pour plus d'exemples, voir la documentation Terraform sur 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 -
Fournir les ressources à partir 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 le site
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 le type=authorization spécifié pour un seau cloud-object-storage comme cible.
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.
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"
}
]
}
]
}'