【Openstack】プロジェクト・ユーザ・ロールについて
用語集
プロジェクト
- プロジェクトとは、ユーザーの割り当てが可能な、クラウド内の組織単位のこと
- プロジェクト=テナント=アカウントである
- ユーザーは、多数のプロジェクトに所属することは可能で最低でも 1つのプロジェクトと関連付ける必要がある
- 【Openstack】プロジェクト・ユーザ・ロールについての解説
- 仮想マシンや仮想ネットワークなどの管理単位で、ユーザーは権限のないテナント内の仮想マシンや仮想ネットワークについては操作・閲覧できない
ユーザ
- Openstackを操作するユーザのこと
- Keystoneで管理される
- インスタンスにログインするユーザとは別物
ロール(role)
- ユーザーが実行できるアクションを定義する。
- ユーザーとプロジェクトのペアに割り当てる。
- ロールのアクションは /etc/
/policy.jsonファイルに定義される - 例えば、Compute Service のロールが実行可能なアクションは /etc/nova/policy.json ファイルで定義する
オペレーション
※keystone
コマンドは廃止された
プロジェクト作成
## プロジェクト一覧 # openstack project list ## プロジェクト作成 # project create -h Usage:openstack project create --description "<description>" <project-name> # openstack project create --description "Demo Project" demo
ユーザ作成
# openstack user create --password-prompt demo-user
User Password: ******
Repeat User Password: *****
ロール割り当て
## ロール一覧 # openstack role list +----------------------------------+------------------+ | ID | Name | +----------------------------------+------------------+ | 01db5ff8fda04b1f8156f92c3dafcbb5 | ResellerAdmin | | 03ff15e6b5ce4ec0b59a61d1791cdd30 | heat_stack_user | | 897748bcc16a4ab7a4ad4689ffd04d59 | admin | | 9fe2ff9ee4384b1894a90878d3e92bab | _member_ | | b865c86512f2485d924b5e12596121c6 | SwiftOperator | | c3e248d784f7493e9eacf139a14c3731 | heat_stack_owner | +----------------------------------+------------------+ ## _member_ ロールをdemoプロジェクトとdemoユーザに追加 # openstack role add --project demo --user demo-user _member_ +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | None | | id | 9fe2ff9ee4384b1894a90878d3e92bab | | name | _member_ | +-----------+----------------------------------+
クライアント環境スクリプトの作成
## クライアント環境スクリプトの作成 # vi /mnt/nfs/packstack/keystonerc_demo-user unset OS_SERVICE_TOKEN export OS_USERNAME=demo-user export OS_PASSWORD=******* export PS1='[\u@\h \W(keystone_demo-user)]\$ ' export OS_AUTH_URL=http://172.16.0.31:5000/v2.0 export OS_TENANT_NAME=demo-user export OS_IDENTITY_API_VERSION=2.0 ## クライアント環境スクリプト読込 # source /root/keystonerc_demo-user ## トークン情報を取得 # openstack token issue +------------+----------------------------------+ | Field | Value | +------------+----------------------------------+ | expires | 2016-04-19T11:46:23.396779Z | | id | 8f8ba9bb81a84229b8784e8cf8fe5046 | | project_id | bf1b0188cb884b9da04ecacaaad14705 | | user_id | dac2344e88b349208c26aa53ecae9f2f | +------------+----------------------------------+
policy.jsonについて
参考:
* Appendix A. The policy.json file
* 【OpenStackチャレンジ】 第6回 policy.json紹介編
* OpenStackのpolicy.jsonを個別ユーザ仕様にする