Bonjour,
j'ai créé un service account en utilisant l'API en respectant la documentation trouvé:
https://help.ovhcloud.com/csm/en-manage-service-account?id=kb_article_view&sysparm_article=KB0059343
Pour l'exemple, disons que ce service account a une URN de ce type sur le compte XXXXXXXXX-ovh:urn:v1:eu:identity:credential:XXXXXXXXX-ovh/oauth2-EU.XXXX
J'ai crée une politique IAM de ce type pensant inclure tous les services accounts:
{
"name": "ServiceAccountBase",
"description": "Elementary introspection for service account",
"identities": [
"urn:v1:eu:identity:credential:XXXXXXXXX-ovh/oauth2-*"
],
"permissions" : {
"allow": [{"action": "account:apiovh:me/get"}]
},
"resources": [
{"urn": "urn:v1:eu:resource:account:XXXXXXXXX-ovh"}
]
}
Si j'utilise le service account dans un basique script terraform
terraform {
required_version = "~> 1.9.0"
required_providers {
ovh = {
source = "ovh/ovh"
version = "~> 2.8.0"
}
}
}
data "ovh_me" "ovh_account" {}
J'obtiens une erreur d'autorisation sur account:apiovh:me/get.
Error: Unable to retrieve /me information:
│ "OVHcloud API error (status code 403): Client::Forbidden: \"User not granted for this request (missing IAM permissions: account:apiovh:me/get)\" (X-OVH-Query-Id: EU.ext-[...])"
L'erreur signifie que la politique ne s'applique pas.
Cependant la documentation mentionne dans https://help.ovhcloud.com/csm/en-gb-customer-iam-policies-api?id=kb_article_view&sysparm_article=KB0056801:
"The URNs and actions can end with a * wildcard character. This allows referring to multiple resources, identities or actions in a single line."
Si je change le champ identities de la politique IAM pour inclure complètement l'urn du service account, ça fonctionne.
Il y a quelques documentations mentionnant l'emploi du wilcard * dans les urns mais il semble que ça ne fonctionne pas dans le cas des identitées.
Est-ce sensé fonctionner avec le champ identities dans une politique IAM?
Merci d'avance.
Bonjour@cbouvier
Vous avez raison, il existe effectivement une ambiguïté dans la documentation : les wildcards ne sont pas prises en charge pour les identités.
Pour ce type de cas d’usage, nous recommandons plutôt de recourir à des groupes d’utilisateurs.
La documentation sera prochainement mise à jour afin de clarifier ce point.
Toutes nos excuses pour la gêne occasionnée.
^FabL
Bonjour@^FabL ,
Pas de souci et merci de la réponse.
J'ai effectivement changé d'approche (je rajoute explicitement tous mes services accounts).
> Pour ce type de cas d’usage, nous recommandons plutôt de recourir à des groupes d’utilisateurs.
Est-ce possible de rajouter des service accounts dans des groupes ?
Quand je regarde l'API, il semble seulement possible de le faire avec des utilisateurs.