こんにちは、京セラみらいエンビジョン株式会社のICTインフラソリューション部のグエンです。
前回は、OpenStackの概要、メリット・デメリット、コミュニティとエコシステムの全体像を説明しました。
今回は、各コンポーネントの機能と役割について具体的に説明しようと思います。
Horizon
Horizonは、WebベースのGUIを通じてOpenStackクラウドと対話し、インスタンス、ネットワーク、ボリューム、イメージなどのリソースを簡単に作成、管理、監視できます。同時に、IDやアクセス制御、請求、測定サービスの構成と管理もグラフィカルに行えるため、ユーザーフレンドリーで強力なクラウド管理ツールとなっています。
ログイン画面
画面全体でコンピュート、容量、ネットワークなどの使用状況、上限などを確認できます。また、インスタンスの動作状況も確認できます。
Horizonの中でも注目すべき特徴の一つが「Network Topology(ネットワークトポロジー)」の表示機能です。ユーザーはこの機能を通じて、クラウド上で構築されたネットワークのトポロジーを視覚的に把握でき、仮想マシンやネットワークリソースの接続状態を図表で確認できます。これにより、クラウドネットワークの構造を理解しやすくなり、適切な管理やトラブルシューティングが容易になります。
Horizonでユーザー管理
HorizonはOpenStackのダッシュボードであり、OpenStack上のリソースの管理や追跡などのサービスを提供します。ただし、全てのユーザーが全てのリソースを表示できるわけではなく、リソースの管理を効果的・安全に行うため、ユーザーに権限を与えます。
例えば、管理ユーザーはグループ、ドメイン、ロールなどへのアクセスが可能ですが、一般ユーザーにはこの機能が制限されています。また、管理ユーザーは複数のユーザーを編集、削除、無効化することができますが、一般ユーザーにはこれらの操作が許可されていません。ユーザーは特定のロールを持つことで、「パスワード変更可能」や「グループ変更の許可」、「ネットワークへの追加の拒否」など、細かい権限を制御できます。
Keystone
KeystoneはOpenStackのアイデンティティサービスで、認証と厳格なアクセス管理を担当します。ユーザーの認証を行い、異なるサービスへのエントリーを提供します。具体的には、以下に説明します。
①認証要求:
・ユーザーからの資格情報を使用して認証を要求します。
・Keystone(Identityサービス)はユーザーのために一時的なトークンを発行して、一般的なログを作成します。
②トークンの取得:
・Keystoneは一時的なトークンとユーザーがアクセス権を持つテナントのリストを返します。
③リクエストとトークンの送信:
・Keystoneはトークンが正しいこと、ユーザーが要求されたコンピュートサービスにアクセスする許可があることを確認します。
・コンピュートサービスはリクエストを完了するためにアクセスする必要がある他のサービスにもアクセスできることを確認します。
④トークンの確認:
・Identityサービスはユーザーをテナントに対して認可し、リクエストのトークンが正しいことを検証します。
・ユーザーの権限も、サービスのポリシーに基づいて検証します。
⑤認証許可、権限付与:
・ユーザーが認可されて、権限が確認されたら、サービスを利用することができます。
・コンピュートサービスはサービスに接続成功を通知します。
この流れは、Keystoneが提供する認証と認可の基本的な概要を示しています。ただし、実際の運用環境や設定によって、これらの手順に変更や拡張が加えられる可能性があります。
Keystoneはデータベースで情報を管理しています。データベースを使用することで、Keystoneは必要なユーザーやプロジェクト情報を安全・効率的に管理し、セキュリティとパフォーマンスの要件を満たすことができます。このコラムでは、データベースとしてMySQLを使用します。
KeystoneのMySQL設定
Keystone は、OpenStack のコア サービスの 1 つであり、認証と認可を担当します。以下に提供される MySQL コマンドのセットは、データベースを作成し、OpenStack の Keystone ID サービスに適切な権限を持つユーザー アカウントをセットアップするために使用されます。
Keystoneデータベースでアクセスユーザーの表示
以下のコマンドは、OpenStack環境でKeystone IDサービス用の専用データベースをセットアップするために利用されます。このプロセスには、rootユーザーとしてMySQLインスタンスにアクセスし、「keystone」という名前のデータベースを作成し、関連する権限を持つ「keystone」という名前のユーザーアカウントを確立し、すぐに有効になるようにデータベース権限をフラッシュすることが含まれます。このコマンドは、Keystoneの認証および認可機能に合わせた特定のデータベース環境を作成することにより、セキュリティと効率を強化することを目的としています。
Keystoneデータベースでユーザーのロール(アクセス制限)
具体的には以下の手順でCLIに入力します。
1. MySQL インスタンスにアクセスします。
mysql -u root -p |
root ユーザーとして MySQLインスタンスにアクセスするために使用されます。root ユーザーのパスワードの入力を求められます。
※デフォルトパスワードが設定されていないため、-p を省いても問題がありません。
2. Keystone データベースを作成します。
CREATE DATABASE keystone; |
Keystoneのデータを保存するために新しいデータベースを作成します。この新しいデータベースの名前は「keystone」となります。
3. Keystone ユーザー アカウントを作成します。
GRANT ALL ON keystone.* TO 'keystone'@'%' IDENTIFIED BY 'MY_KEYSTONE_DB_PASSWORD'; |
指定されたパスワードを持つ「keystone」という名前のユーザー アカウントを作成し、任意のホスト (「%」) から「keystone」データベースに対するすべての権限を付与します。 ※MY_KEYSTONE_DB_PASSWORDを適切なパスワードに置き換えます。
4. Keystone ユーザーにアクセスを許可します。
GRANT ALL ON keystone.* TO 'keystone'@'localhost' IDENTIFIED BY 'MY_KEYSTONE_DB_PASSWORD'; |
同じ権限を付与しますが、ローカルホスト (データベースが実行されているマシン) からのみ「keystone」データベースへのアクセスを制限します。 ※MY_KEYSTONE_DB_PASSWORDを適切なパスワードに置き換えます。
5. データベースのフラッシュ権限:
FLUSH PRIVILEGES; |
このコマンドにより、権限の変更が即座に有効になります。
6. MySQL クライアントを終了します。
quit |
これらの手順は、Keystone が専用のデータベースと、そのデータを管理するために必要な権限を持つユーザー アカウントを持つために必要な初期設定の一部です。 データベースとユーザー アカウントは、ローカルホストまたは特定のホストからのデータベースへのアクセスを制限するなど、セキュリティを考慮して作成されます。
第3回目でHorizonとKeystoneを紹介しました。次回、Novaを具体的に説明します。
OpenStack導入サービス

OpenStackを仮想基盤としてサービスの包括的な技術支援を提供します。製品の検討段階から設計、PoC、構築、運用、技術支援まで行い、効率的でセキュアなクラウド基盤の構築をサポート致します。
詳細を⾒る