zoukankan      html  css  js  c++  java
  • 用户、服务openstack身份管理by小雨

    新手发帖,很多方面都是刚入门,有错误的地方请大家见谅,欢迎批评指正

        基本念概

        身份服务有两个重要功能:

        1、用户管理:录记用户和他们的权限

        2、服务目录:供给可用服务和该服务api的终端地址

        身份服务义定了一些非常值得懂得的义定:

        用户(User):应用OpenStack云服务的人、系统、服务的数字示表。身份验证服务验证用户传入的求请。用户登录可能被予赋拜访资源的令牌。用户可能直接被指定给一个特定租户,像好用户在这个租户中一样。

        认证信息(Credentials):用户持有的,一般情况下只有这个用户晓得的据数。用户可以应用这个据数来明证他的身份(因为没有其他人晓得这个据数)。例如:

        

    • 配对的用户名和密码
    • 配对的用户名和API key
    • 自己和有你本人照片的驾驶证
    • 发表给你不被其他人晓得的令牌

        认证(Authentication):在认证服务景背下,认证是认确用户身份和求请正确性的动作。身份服务认确传入的求请来自于有求请权限的用户。这些求请最初以一系列验证信息的式形涌现(用户名和密码,或用户名和API key)。经过初始验证后,身份服务会发表给用户一个令牌,在后续求请时用户可以用这个令牌说明他们的身份经已经过认证。

        令牌(Token):令牌是用来拜访资源的意任特比的本文。个每令牌有一个拜访围范。令牌可在意任间时收回,并在一个限有的间时内有效。在Folsom本版中身份服务支撑基于令牌的认证,未来将会支撑额定的议协。首要的目是集成服务,不盼望成为一个成熟的身份存储和管理方案。

        

        租户(Tenant):用来分组或断绝资源和(或)身份对象的容器。根据服务运营商,租户可以映射成一个户客、账户、组织或项目。

        服务(Service):一个OpenStack服务,例如算计(nova),对象存储(swift)或镜像服务(glance)。服务供给一个或多个用户可以拜访资源和行执(可能用有的)作操的端点。

        端点(Endpoint):一个可通过网络拜访的服务地址,平日应用URL描述。如果应用扩展,可以创立端点模板,它代表了全部可跨区域拜访的服务。

        色角(Role):可行执一特定系列作操的用户特性。色角包含一系列权力和权特。用户可继承其所属色角的权力和权特。在身份服务中,发表给用户的令牌包含用户能担承的色角表列。这个用户用调的服务定决他们怎样释解这个用户所属的色角,以及个每色角予授拜访的作操和资源。

        

        用户管理

        用户身份管理有三个重要的念概:

        

    • 用户Users
    • 租户Tenants
    • 色角Roles

        用户代表一个人,他持有关相的信息,例如用户名、密码、电子邮件。面下的例子是创立一个名为“alice”的用户:

    $ keystone user-create --name=alice --pass=mypassword123 --email= alice@example.com

        租户可以看作是一个项目、分组或组织。当你向OpenStack服务发送求请时,你必须之地一个租户。例如如果你要向算计服务求请查询运行实例的表列,你将收到在你查询里指定租户内的运行实例表列。面下的例子创立一个名为“acme”的租户。

    $ keystone tenant-create --name=acme

        注意!因为在之前的OpenStack算计本版中应用术语“项目”来替代租户,一些命令行工具应用--project_id替代--tenant-id或--os-tenant-id指定租户ID。

        色角演绎了给定租户下答应用户行执的作操。以下例子创立一个名为“compute-user"的色角:

    $ keystone role-create --name=compute-user

        注意!这取决于单个的服务(比如算计服务和镜像服务)配分这些色角的义意。至于身份服务而言,色角只是一个简略的名字。

        身份服务将一个用户与租户、色角联关。继承我们后面的例子,我们希望在租户“acme”中给用户”alice”配分“compute-user”权限。

    $ keystone user-list
    +--------+---------+-------------------+--------+
    | id | enabled | email | name |
    +--------+---------+-------------------+--------+
    | 892585 | True | alice@example.com | alice |
    +--------+---------+-------------------+--------+
    $ keystone role-list
    +--------+--------------+
    | id | name |
    +--------+--------------+
    | 9a764e | compute-user |
    +--------+--------------+
    $ keystone tenant-list
    +--------+------+---------+
    | id | name | enabled |
    +--------+------+---------+
    | 6b8fd2 | acme | True |
    +--------+------+---------+
    $ keystone user-role-add --user=892585 --role=9a764e --tenant-id=6b8fd2

        可以在不同的租户中给用户配分不同的色角。例如Alice可以在租户“Cyberdyne”中有拥“admin”色角。在同一个租户中,也可以给用户配分多个色角。

        /etc/[SERVICE_CODENAME]/policy.json控制给定服务答应用户行进的作操。例如/etc/nova/policy.json指定算计服务的拜访略策,/etc/glance/policy.json指定镜像服务的拜访略策,/etc/keystone/policy.json指定身份服务的拜访略策。

        算计、身份、镜像服务中默许的policy.json文件只有一个“admin"色角:面里全部不要需admin色角的作操可以被租户中意任色角的用户拜访。

        如果你希望在例如算计服务中制限用户行执作操,你要需在身份服务中创立色角,然后修改/etc/nova/policy.json文件使这个色角应用到算计作操中。

        例如,面下/etc/nova/policy.json中的这一行指定对用户创立卷不做制限:不论用户在租户中是有何种色角,他们都可以在租户中创立卷。

    "volume:create":[],

        如果你希望制限以后租户中有”compute-user"色角的用户才能创立卷,可以加增“role:compute-user",例如这样:

    "volume:create": ["role:compute-user"],

        如果我们希望制限全部的算计服务求请都要需这个色角,略策文件是这样的:

    {
    "admin_or_owner": [["role:admin"], ["project_id: %(project_id)s"]],
    "default": [["rule:admin_or_owner"]],
    "compute:create": ["role":"compute-user"],
    "compute:create:attach_network": ["role":"compute-user"],
    "compute:create:attach_volume": ["role":"compute-user"],
    "compute:get_all": ["role":"compute-user"],
    "admin_api": [["role:admin"]],
    "compute_extension:accounts": [["rule:admin_api"]],
    "compute_extension:admin_actions": [["rule:admin_api"]],
    "compute_extension:admin_actions:pause": [["rule:admin_or_owner"]],
    "compute_extension:admin_actions:unpause": [["rule:admin_or_owner"]],
    "compute_extension:admin_actions:suspend": [["rule:admin_or_owner"]],
    "compute_extension:admin_actions:resume": [["rule:admin_or_owner"]],
    "compute_extension:admin_actions:lock": [["rule:admin_api"]],
    "compute_extension:admin_actions:unlock": [["rule:admin_api"]],
    "compute_extension:admin_actions:resetNetwork": [["rule:admin_api"]],
    "compute_extension:admin_actions:injectNetworkInfo": [["rule:admin_api"]],
    "compute_extension:admin_actions:createBackup": [["rule:admin_or_owner"]],
    "compute_extension:admin_actions:migrateLive": [["rule:admin_api"]],
    "compute_extension:admin_actions:migrate": [["rule:admin_api"]],
    "compute_extension:aggregates": [["rule:admin_api"]],
    "compute_extension:certificates": ["role":"compute-user"],
    "compute_extension:cloudpipe": [["rule:admin_api"]],
    "compute_extension:console_output": ["role":"compute-user"],
    "compute_extension:consoles": ["role":"compute-user"],
    "compute_extension:createserverext": ["role":"compute-user"],
    "compute_extension:deferred_delete": ["role":"compute-user"],
    "compute_extension:disk_config": ["role":"compute-user"],
    "compute_extension:extended_server_attributes": [["rule:admin_api"]],
    "compute_extension:extended_status": ["role":"compute-user"],
    "compute_extension:flavorextradata": ["role":"compute-user"],
    "compute_extension:flavorextraspecs": ["role":"compute-user"],
    "compute_extension:flavormanage": [["rule:admin_api"]],
    "compute_extension:floating_ip_dns": ["role":"compute-user"],
    "compute_extension:floating_ip_pools": ["role":"computeuser"],
    "compute_extension:floating_ips": ["role":"compute-user"],
    "compute_extension:hosts": [["rule:admin_api"]],
    "compute_extension:keypairs": ["role":"compute-user"],
    "compute_extension:multinic": ["role":"compute-user"],
    "compute_extension:networks": [["rule:admin_api"]],
    "compute_extension:quotas": ["role":"compute-user"],
    "compute_extension:rescue": ["role":"compute-user"],
    "compute_extension:security_groups": ["role":"compute-user"],
    "compute_extension:server_action_list": [["rule:admin_api"]],
    "compute_extension:server_diagnostics": [["rule:admin_api"]],
    "compute_extension:simple_tenant_usage:show": [["rule:admin_or_owner"]],
    "compute_extension:simple_tenant_usage:list": [["rule:admin_api"]],
    "compute_extension:users": [["rule:admin_api"]],
    "compute_extension:virtual_interfaces": ["role":"computeuser"],
    "compute_extension:virtual_storage_arrays": ["role":"computeuser"],
    "compute_extension:volumes": ["role":"compute-user"],
    "compute_extension:volumetypes": ["role":"compute-user"],
    "volume:create": ["role":"compute-user"],
    "volume:get_all": ["role":"compute-user"],
    "volume:get_volume_metadata": ["role":"compute-user"],
    "volume:get_snapshot": ["role":"compute-user"],
    "volume:get_all_snapshots": ["role":"compute-user"],
    "network:get_all_networks": ["role":"compute-user"],
    "network:get_network": ["role":"compute-user"],
    "network:delete_network": ["role":"compute-user"],
    "network:disassociate_network": ["role":"compute-user"],
    "network:get_vifs_by_instance": ["role":"compute-user"],
    "network:allocate_for_instance": ["role":"compute-user"],
    "network:deallocate_for_instance": ["role":"compute-user"],
    "network:validate_networks": ["role":"compute-user"],
    "network:get_instance_uuids_by_ip_filter": ["role":"computeuser"],
    "network:get_floating_ip": ["role":"compute-user"],
    "network:get_floating_ip_pools": ["role":"compute-user"],
    "network:get_floating_ip_by_address": ["role":"compute-user"],
    "network:get_floating_ips_by_project": ["role":"computeuser"],
    "network:get_floating_ips_by_fixed_address": ["role":"computeuser"],
    "network:allocate_floating_ip": ["role":"compute-user"],
    "network:deallocate_floating_ip": ["role":"compute-user"],
    "network:associate_floating_ip": ["role":"compute-user"],
    "network:disassociate_floating_ip": ["role":"compute-user"],
    "network:get_fixed_ip": ["role":"compute-user"],
    "network:add_fixed_ip_to_instance": ["role":"compute-user"],
    "network:remove_fixed_ip_from_instance": ["role":"computeuser"],
    "network:add_network_to_project": ["role":"compute-user"],
    "network:get_instance_nw_info": ["role":"compute-user"],
    "network:get_dns_domains": ["role":"compute-user"],
    "network:add_dns_entry": ["role":"compute-user"],
    "network:modify_dns_entry": ["role":"compute-user"],
    "network:delete_dns_entry": ["role":"compute-user"],
    "network:get_dns_entries_by_address": ["role":"compute-user"],
    "network:get_dns_entries_by_name": ["role":"compute-user"],
    "network:create_private_dns_domain": ["role":"compute-user"],
    "network:create_public_dns_domain": ["role":"compute-user"],
    "network:delete_dns_domain": ["role":"compute-user"]
    }

        

        

        

        

        

        

        

        

        

    文章结束给大家分享下程序员的一些笑话语录: 小沈阳版程序员~~~ \n程序员其实可痛苦的了......需求一做一改,一个月就过去了;嚎~ \n需求再一改一调,一季度就过去了;嚎~ \n程序员最痛苦的事儿是啥,知道不?就是,程序没做完,需求又改了; \n程序员最最痛苦的事儿是啥,知道不? 就是,系统好不容易做完了,方案全改了; \n程序员最最最痛苦的事儿是啥,知道不? 就是,系统做完了,狗日的客户跑了; \n程序员最最最最最痛苦的事儿是啥,知道不? 就是,狗日的客户又回来了,程序给删没了!

  • 相关阅读:
    django 项目需要注意的一些点
    VUE之路
    Oracle 表格碎片的查看方法
    RHEL 6.x or 7.x 使用分区绑定ASM 磁盘的方法
    RMAN 修复主库 nologging 操作导致物理备库的坏块
    Oracle 数据库19c 回退降级到 11.2.0.4 方案
    如何评估oracle 数据库rman全备和增量备份大小
    在将Oracle GI和DB升级到19c或降级到以前的版本之前需要应用的补丁 (Doc ID 2668071.1)
    Oracle 数据库坏块处理
    opatch auto 安装11.2.0.4.20190115 PSU遇到 OUI-67133: Execution of PRE script failed,with returen value 1 报错
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3026220.html
Copyright © 2011-2022 走看看