サービスエンティティと API エンドポイントの作成

サービスエンティティと API エンドポイントの作成

Identity サービスは、サービスとその場所のカタログを提供します。OpenStack 環境に追加した各サービスは、 サービス エンティティーといくつかの API エンドポイント をカタログに登録する必要があります。

前提条件

Identity サービスのデータベースは、初期状態では、認証やカタログサービスの情報を何も持っていません。インストールと設定 セクションにおいて作成した一時認証トークンを使用して、Identity サービスのサービスエンティティーと API エンドポイントを初期化する必要があります。

openstack コマンドの --os-token パラメーターに認証トークンの値を渡すか、OS_TOKEN 環境変数を設定する必要があります。同様に、openstack コマンドの --os-url パラメーターに Identity サービスの URL 値を渡すか、OS_URL 環境変数を設定する必要があります。このガイドでは、コマンドの長さを短くするため、環境変数を使用します。

警告

セキュリティー上の理由から、Identity サービスの初期化に使用する以外には、一時認証トークンを使用しないでください。

  1. 認証トークンを設定します。

    $ export OS_TOKEN=ADMIN_TOKEN
    

    ADMIN_TOKENインストールと設定 で生成した認証トークンに置き換えます。例:

    $ export OS_TOKEN=294a4c8a8a475f9b9836
    
  2. エンドポイント URL を設定します。

    $ export OS_URL=http://controller:35357/v3
    
  3. Identity API バージョンを設定します。

    $ export OS_IDENTITY_API_VERSION=3
    

サービスエンティティと API エンドポイントの作成

  1. Identity サービスは、OpenStack 環境にあるサービスのカタログを管理します。サービスは、このカタログを使用して、利用できる他のサービスを判断します。

    Identity サービス用のサービスエンティティを作成します。

    $ openstack service create \
      --name keystone --description "OpenStack Identity" identity
    +-------------+----------------------------------+
    | Field       | Value                            |
    +-------------+----------------------------------+
    | description | OpenStack Identity               |
    | enabled     | True                             |
    | id          | 4ddaae90388b4ebc9d252ec2252d8d10 |
    | name        | keystone                         |
    | type        | identity                         |
    +-------------+----------------------------------+
    

    注釈

    OpenStack は ID を動的に生成します。そのため、このコマンド実行結果例と別の値になるでしょう。

  2. Identity サービスは、OpenStack 環境にあるサービスに関連づけられた API エンドポイントのカタログを管理します。サービスは、このカタログを使用して、環境内の他のサービスと通信する方法を判断します。

    OpenStack は、各サービスに対して 3 種類の API エンドポイントを使用します。管理 (admin)、内部 (internal)、パブリック (public) があります。デフォルトでは、管理 API エンドポイントでユーザーやテナントの変更を行えますが、パブリック API と内部 API ではこれらの操作は許可されません。本番環境では、セキュリティーのため、異なる種類のユーザーごとに分かれたネットワークに置いたほうがいいでしょう。例えば、パブリック API ネットワークは、顧客が自身のクラウドを管理できるよう、インターネットから利用できるでしょう。管理 API ネットワークは、クラウドインフラを管理する組織内の運用者に制限されるでしょう。内部 API ネットワークは、OpenStack サービスが動作するホストに制限されるでしょう。また、OpenStack は、拡張性のために、複数のリージョンをサポートしています。簡単のため、このガイドでは、すべてのエンドポイントで管理ネットワークを使用し、デフォルトの RegionOne リージョンを使用します。

    Identity サービス API エンドポイントを作成します。

    $ openstack endpoint create --region RegionOne \
      identity public http://controller:5000/v2.0
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 30fff543e7dc4b7d9a0fb13791b78bf4 |
    | interface    | public                           |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 8c8c0927262a45ad9066cfe70d46892c |
    | service_name | keystone                         |
    | service_type | identity                         |
    | url          | http://controller:5000/v2.0      |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      identity internal http://controller:5000/v2.0
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 57cfa543e7dc4b712c0ab137911bc4fe |
    | interface    | internal                         |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 6f8de927262ac12f6066cfe70d99ac51 |
    | service_name | keystone                         |
    | service_type | identity                         |
    | url          | http://controller:5000/v2.0      |
    +--------------+----------------------------------+
    
    $ openstack endpoint create --region RegionOne \
      identity admin http://controller:35357/v2.0
    +--------------+----------------------------------+
    | Field        | Value                            |
    +--------------+----------------------------------+
    | enabled      | True                             |
    | id           | 78c3dfa3e7dc44c98ab1b1379122ecb1 |
    | interface    | admin                            |
    | region       | RegionOne                        |
    | region_id    | RegionOne                        |
    | service_id   | 34ab3d27262ac449cba6cfe704dbc11f |
    | service_name | keystone                         |
    | service_type | identity                         |
    | url          | http://controller:35357/v2.0     |
    +--------------+----------------------------------+
    

    注釈

    OpenStack 環境に追加するサービスごとに、1 つ以上のサービスエンティティー、3 種類の API エンドポイントを Identity サービスに登録する必要があります。

Creative Commons Attribution 3.0 License

Except where otherwise noted, this document is licensed under Creative Commons Attribution 3.0 License. See all OpenStack Legal Documents.

Search