Keystone

O que é keystone e qual seu papel dentro de uma Nuvem Openstack?

 

Sejam Bem vindos a mais um post de Rodrigo Soares.

general-operations-scheme-keystone-authentication-mechanisms

 

Ao iniciar as configurações do OpenStack você deve instalar e configurar o keystone, para os casos de não instalação automatizada com  deploy Puppet ou Ansible.
Assim poderá gerenciar todos os recursos relacionados a autenticação de serviços e usuários. Mesmo em uma instalação automatizada você poderá alterar os acessos tanto de serviços quanto de pessoas dentro do arquivo de configuração.

Keystone é o serviço de identidade usado por OpenStack (authN) de autenticação e autorização de alto nível (authZ). Atualmente suporta authN tokens e autorização de usuário-serviço. Isso tem sido recentemente projetado para permitir a expansão para suporte a proxy para serviços externos e mecanismos de AuthN/AuthZ como oAuth, SAML e openID nas futuras versões.

Além dos usuários quais o serviços o keystone gerencia?.

Ele gerencia Tenants, Roles, Serviços, Catálogo e Endpoints além dos usuários certamente.
Tenants conhecidos como projetos e Roles conhecido como papeis, ele é também um gerencia o catalogo de serviços e endpoint os serviços são acessados através  de URLs e nomes de usuários e senha ou token.

 Tenants ou Simplesmente Projetos.

Para cada usuário ele deve obrigatoriamente fazer parte de um Projeto dentro da plataforma de nuvem para gerenciar seus serviços.
Ele é um grupo lógico de objetos, tais como: Instâncias, redes, roteadores entre outros elementos da nuvem privada. Para que o acesso a esses recursos é necessário a definição de papeis “ROLES” para cada usuários seja ele administrador ou usuário assim ele terá permissão para executar tarefas administrativas dentro de suas limitações.

 Roles ou Papeis.

Os administradores e usuários tem seus papeis definidos dentro da nuvem OpenStack, acessos e permissões fazem o gerenciamento fluírem de forma controlada.
Um usuário da rede pode fazer parte de vários projetos e dentro desses projetos pode haver permissão ou restrição de serviços.
A mais comum é não criar redes internas dentro de uma nuvem OpenStack entre outras configurações definidas pelo Administrador da nuvem OpenStack.
Certamente todos devem ter um papel definido no sistema caso contrario ele não conseguira gerenciar a sua nuvem.

 Serviços.

O sistema de nuvem privada OpenStack tem uma gama muito grande de serviços, para que esses serviços funcionem de forma adequada todos os procedimentos para criar uma autenticação devem ser feitas para que se registrem no keystone. Eles podem ser feitos de várias formas manual ou automatizada com o puppet ou ansible entre outros.
A comunicação desses serviços são feitas por usuários ou serviços a exemplo o RabbtMQ que faz a comunicação com os principais serviços da nuvem OpenStack. 
Veja o exemplo:
Criando um usuário de serviço externo/interno no OpenStack
apt-get install rabbitmq-server

rabbitmqctl add_user openstack password

rabbitmqctl set_permissions openstack “.*” “.*” “.*”

Aqui já temos um serviço devidamente instalado e com seu usuário e permisão, que será informado nos arquivos de configuração do OpenStack onde se aplica.

 Usuários de serviços e usuários de autenticação “Pessoas”

No exemplo acima foi criado um usuário de serviço da plataforma esse serviço em questão é responsável pela comunicação dos serviços do OpenStack onde ele se aplica.
Em suma usuários são identidades usadas por pessoas ou sistemas.
Um usuário de autenticação pode ser criado ou adicionado após uma implantação ou antes, esse por sua vez pode ter acesso a vários serviços dependendo do papel empregado a ele dentro de um projeto. Usuários e administradores também pode gerar um TOKEN de serviço para seus trabalhos diários, ele espira em um prazo determinado pelo sistema ou administrador da nuvem OpenStack.
Usuários de sistema já tem seu escopo definido antes mesmo de iniciar um projeto OpenStack.

Veja o exemplo:

Criando usuário em uma nuvem já em produção.

openstack user create –domain default –password-prompt admin.

 Endpoints ou Endereços de comunicação por API.

Todos os serviços da nuvem privada OpenStack são requisitadas por URL e uma Porta, essa API responde a um endereço na rede com uma porta de conexão, Para administrar essas URLs o usuário deverá ter privilégios.
O Endpoint do keystone é http://192.168.X.XX:5000/vX.0 invocando essa url você pode administrar alguns serviços dentro do keystone entre ele usuários e catálogos.

 Qual a função do Catálogo na nuvem OpenStack?

Ele armazena todos os endpoints do projeto, você pode contatar o através do comando e gerenciar outros serviços da nuvem. Certamente deverá ter direitos administrativos para executar essa tarefa.
Openstack catalog list.

Esse post foi um pouco do keystone o serviço de identidade de uma nuvem OpenStack, para saber mais acesse.

http://openstack.org

Aproveitem e sigam o Perfil do OpenStack Brasil no Instagram.

https://instagram.com/openstackbrasil

 

 

Anúncios