İlkeler

Her OpenStack servisi, kaynaklarının erişim ilkelerini ilişkili bir ilke dosyasında tanımlar. Örneğin, bir kaynak API erişimi, birime bağlanma veya örnekleri başlatma becerisi olabilir. İlke kuralları JSON formatında belirtilmiş ve dosyaya policy.json denir. Bu dosyanın sözdizimi ve biçimi Yapılandırma Referansı belgesinde tartışılmıştır.

Bu ilkeler, çeşitli kaynaklara erişimi denetlemek için bulut yöneticisi tarafından değiştirilebilir veya güncellenebilir. Erişim denetim ilkelerindeki herhangi bir değişikliğin herhangi bir kaynağın güvenliğini zayıflatmadığından emin olun. Ayrıca, policy.json dosyasındaki değişikliklerin hemen geçerli hale geldiğini ve servisin yeniden başlatılmasını gerektirmediğini unutmayın.

Aşağıdaki örnek, servisin, yalnızca role = admin ve role_management işlevlerinin birleşimi olarak tanımlanan cloud_admin rolü olan kullanıcılara kaynak oluşturma, güncelleme ve silme erişimini nasıl sınırlandırabileceğini göstermektedir. domain_id = admin_domain_id, get ve liste kaynakları ise cloud_admin veya admin rolü olan kullanıcılar tarafından kullanılabilir.

{
    "admin_required": "role:admin",
    "cloud_admin": "rule:admin_required and domain_id:admin_domain_id",
    "service_role": "role:service",
    "service_or_admin": "rule:admin_required or rule:service_role",
    "owner" : "user_id:%(user_id)s or user_id:%(target.token.user_id)s",
    "admin_or_owner": "(rule:admin_required and domain_id:%(target.token.user.domain.id)s) or rule:owner",
    "admin_or_cloud_admin": "rule:admin_required or rule:cloud_admin",
    "admin_and_matching_domain_id": "rule:admin_required and domain_id:%(domain_id)s",
    "service_admin_or_owner": "rule:service_or_admin or rule:owner",

    "default": "rule:admin_required",

    "identity:get_service": "rule:admin_or_cloud_admin",
    "identity:list_services": "rule:admin_or_cloud_admin",
    "identity:create_service": "rule:cloud_admin",
    "identity:update_service": "rule:cloud_admin",
    "identity:delete_service": "rule:cloud_admin",

    "identity:get_endpoint": "rule:admin_or_cloud_admin",
    "identity:list_endpoints": "rule:admin_or_cloud_admin",
    "identity:create_endpoint": "rule:cloud_admin",
    "identity:update_endpoint": "rule:cloud_admin",
    "identity:delete_endpoint": "rule:cloud_admin",

}