tech:notes_openstack_keystone_-_role_et_policy
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédente | |||
| tech:notes_openstack_keystone_-_role_et_policy [2025/11/09 18:57] – Jean-Baptiste | tech:notes_openstack_keystone_-_role_et_policy [2026/06/07 19:12] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 1: | Ligne 1: | ||
| + | < | ||
| + | {{tag> | ||
| + | |||
| + | # OpenStack Keystone - Role & Policy | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Exemple de conf : https:// | ||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | [oslo_policy] | ||
| + | policy_file = / | ||
| + | ~~~ | ||
| + | |||
| + | ~~~ | ||
| + | / | ||
| + | / | ||
| + | ~~~ | ||
| + | |||
| + | `/ | ||
| + | ~~~python | ||
| + | # Path to directory containing policy files | ||
| + | POLICY_FILES_PATH = '/ | ||
| + | |||
| + | POLICY_FILES = { | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | ' | ||
| + | # ' | ||
| + | } | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | python -c ' | ||
| + | ~~~ | ||
| + | |||
| + | Logs | ||
| + | ~~~bash | ||
| + | journalctl -f -u devstack@keystone.service | grep -i warning | ||
| + | ~~~ | ||
| + | |||
| + | Fichier policy.json / policy.yaml | ||
| + | ~~~bash | ||
| + | oslopolicy-sample-generator --namespace keystone --format yaml --output-file / | ||
| + | |||
| + | # | ||
| + | /"/ | ||
| + | |||
| + | |||
| + | # | ||
| + | |||
| + | # | ||
| + | ~~~ | ||
| + | |||
| + | Ou | ||
| + | ~~~bash | ||
| + | # cp -p / | ||
| + | curl https:// | ||
| + | ~~~ | ||
| + | |||
| + | roles implicites (sauf pour admin) | ||
| + | |||
| + | `/ | ||
| + | ~~~ini | ||
| + | [assignment] | ||
| + | prohibited_implied_role = admin | ||
| + | |||
| + | [token] | ||
| + | infer_roles = true | ||
| + | ~~~ | ||
| + | |||
| + | Voir https:// | ||
| + | |||
| + | ### Domain Admin | ||
| + | |||
| + | Voir : | ||
| + | * https:// | ||
| + | * [[https:// | ||
| + | * https:// | ||
| + | |||
| + | Création d'un nouveau domaine et d'un groupe admin du domaine // (domain admin) // | ||
| + | |||
| + | ~~~bash | ||
| + | openstack domain create acme | ||
| + | |||
| + | openstack group create --domain acme acme_admins | ||
| + | openstack user create --domain acme --password toor acmeadm | ||
| + | openstack group add user acme_admins acmeadm | ||
| + | |||
| + | openstack role add --group acme_admins --domain acme admin | ||
| + | ~~~ | ||
| + | |||
| + | Voir https:// | ||
| + | |||
| + | Ajout d'un utilisateur au nouveau domaine | ||
| + | ~~~bash | ||
| + | openstack role add --user jean --user-domain acme --project jbprj member | ||
| + | |||
| + | #openstack role add admin --domain acme --user 8f20dc8ae49141c3bdc1f59927bf79eb --inherited | ||
| + | openstack role add --user jean --user-domain acme --project jbprj member --inherited | ||
| + | ~~~ | ||
| + | |||
| + | Voir https:// | ||
| + | |||
| + | Correction fichier | ||
| + | ~~~bash | ||
| + | journalctl -f -u devstack@keystone.service 2>/ | ||
| + | cat plop | sort -u | tr -d '"' | ||
| + | vim !$ | ||
| + | ~~~ | ||
| + | |||
| + | Autre | ||
| + | ~~~bash | ||
| + | cp -p / | ||
| + | ~~~ | ||
| + | |||
| + | ~~~bash | ||
| + | openstack implied role list | ||
| + | openstack role assignment list --user jean --name --effective | ||
| + | openstack role assignment list --user dom1_user --name --effective --user-domain dom1 | ||
| + | ~~~ | ||
| + | |||
| + | Test | ||
| + | ~~~bash | ||
| + | openstack domain create dom1 | ||
| + | openstack user create dom1_admin --password toor --domain dom1 | ||
| + | openstack role add admin --user dom1_admin --domain dom1 --inherited --user-domain dom1 | ||
| + | |||
| + | ## Ne pas faire, sinon droit même sur les autres domaines ! | ||
| + | #openstack role add admin --user dom1_admin --domain dom1 --user-domain dom1 | ||
| + | |||
| + | # Pour autoriser l' | ||
| + | openstack project create dom1_prj1 --domain dom1 | ||
| + | openstack role add admin --project-domain dom1 --project dom1_prj1 --user dom1_admin --user-domain dom1 | ||
| + | |||
| + | # Création utilisateur du domain | ||
| + | openstack user create dom1_user --password toor --domain dom1 | ||
| + | openstack role add member --user dom1_user --domain dom1 --inherited --user-domain dom1 | ||
| + | |||
| + | # Création d'un projet pour l' | ||
| + | openstack project create dom1_user_prj1 --domain dom1 | ||
| + | openstack role add admin --project-domain dom1 --project dom1_user_prj1 --user dom1_user --user-domain dom1 | ||
| + | |||
| + | # Création de d' | ||
| + | openstack project create prj1 --domain dom1 | ||
| + | openstack user create dom1_projet1_admin --password toor --domain dom1 --project prj1 --project-domain dom1 | ||
| + | # | ||
| + | # PB DROIT ADMIN | ||
| + | #openstack role add admin --user dom1_projet1_admin --domain dom1 --user-domain dom1 | ||
| + | |||
| + | # Création de l' | ||
| + | openstack user create dom1_projet1_user --password toor --domain dom1 --project prj1 --project-domain dom1 | ||
| + | openstack role add member --user dom1_projet1_user --user-domain dom1 --project prj1 --project-domain dom1 | ||
| + | |||
| + | ## A quoi sert le --inherited sur un projet ? | ||
| + | #openstack role add member --user dom1_projet1_user --user-domain dom1 --project prj1 --project-domain dom1 --inherited | ||
| + | ~~~ | ||
| + | |||
| + | Reset | ||
| + | ~~~bash | ||
| + | openstack domain set --disable dom1 | ||
| + | openstack domain delete dom1 | ||
| + | ~~~ | ||
| + | |||
