ユーザーおよびアイデンティティー管理ガイド
ユーザーの管理と keystone 認証
概要
はじめに リンクのコピーリンクがクリップボードにコピーされました!
インスタンスの作成中に、ロールベースのアクセス制御 (RBAC) 共有セキュリティーグループをインスタンスに直接適用することはできません。RBAC 共有セキュリティーグループをインスタンスに適用するには、最初にポートを作成し、共有セキュリティーグループをそのポートに適用してから、そのポートをインスタンスに割り当てる必要があります。セキュリティーグループのポートへの追加 を参照してください。
多様性を受け入れるオープンソースの強化 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。まずは、マスター (master)、スレーブ (slave)、ブラックリスト (blacklist)、ホワイトリスト (whitelist) の 4 つの用語の置き換えから始めます。この取り組みは膨大な作業を要するため、今後の複数のリリースで段階的に用語の置き換えを実施して参ります。詳細は、Red Hat CTO である Chris Wright のメッセージ を参照してください。:leveloffset: +0
Red Hat ドキュメントへのフィードバック (英語のみ) リンクのコピーリンクがクリップボードにコピーされました!
Red Hat ドキュメントに対するご意見をお聞かせください。ドキュメントの改善点があればお知らせください。
ドキュメントへのダイレクトフィードバック (DDF) 機能の使用 (英語版のみ)
特定の文章、段落、またはコードブロックに対して直接コメントを送付するには、DDF の Add Feedback 機能を使用してください。なお、この機能は英語版のドキュメントでのみご利用いただけます。
- Multi-page HTML 形式でドキュメントを表示します。
- ドキュメントの右上隅に Feedback ボタンが表示されていることを確認してください。
- コメントするテキスト部分をハイライト表示します。
- Add Feedback をクリックします。
- Add Feedback フィールドにコメントを入力します。
- オプション: ドキュメントチームが問題の詳細を確認する際に使用できるメールアドレスを記入してください。
- Submit をクリックします。
第1章 前書き リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス
クラウドの管理者は、プロジェクト、ユーザー、ロールを管理することができます。
プロジェクトとは、リソースの集合が含まれる組織単位のことです。プロジェクト内のロールにユーザーを割り当てることができます。ロールは、特定のプロジェクト内のリソースに対してユーザーが実行できるアクションを定義します。ユーザーは、複数のプロジェクトのロールに割り当てることができます。
各 Red Hat OpenStack (RHOSP) デプロイメントには、プロジェクト内のロールに割り当てられたユーザーが少なくとも 1 人含まれている必要があります。クラウド管理者は、次の操作を実行できます。
- プロジェクトとユーザーを追加、更新、および削除する。
- ユーザーを 1 つまたは複数のロールに割り当て、これらの割り当てを変更または削除する。
- プロジェクトとユーザーを個別に管理する。
Identity サービス (keystone) でユーザー認証を設定して、サービスおよびエンドポイントへのアクセスを制御することも可能です。Identity サービスでは、トークンベースの認証が提供され、LDAP と Active Directory と統合することができるため、ユーザーとアイデンティティーを外部で管理し、Identity サービスとユーザーデータを同期できます。
第2章 ユーザーの管理 リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、Dashboard でユーザーの追加、変更、削除ができます。ユーザーは、1 つまたは複数のプロジェクトに所属することができます。プロジェクトとユーザーは、個別に管理することが可能です。
2.1. Dashboard を使用したユーザーの作成 リンクのコピーリンクがクリップボードにコピーされました!
主プロジェクトおよびロールをユーザーに割り当てることができます。OpenStack Dashboard (horizon) を使用して作成するユーザーは、デフォルトで Identity サービスのユーザーです。Identity サービスに含まれる LDAP プロバイダーを設定することで、Active Directory ユーザーを統合できます。
手順
- 管理ユーザーとして Dashboard にログインします。
- Identity > Users を選択します。
- Create User をクリックします。
- ユーザーのユーザー名、メールアドレス、仮のパスワードを入力します。
- Primary Project のリストからプロジェクトを選択します。
-
Role の一覧からユーザーのロールを選択します。デフォルトのロールは
memberです。 - Create User をクリックします。
2.2. Dashboard を使用したユーザーの編集 リンクのコピーリンクがクリップボードにコピーされました!
主プロジェクトなど、ユーザーの詳細を更新することができます。
手順
- 管理ユーザーとして Dashboard にログインします。
- Identity > Users を選択します。
- Actions コラムで、Edit をクリックします。
- Update User ウィンドウで、User Name、Email、Primary Project を更新できます。
- ユーザーの更新 をクリックします。
2.3. Dashboard を使用したユーザーの有効化または無効化 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard でユーザーを無効にすることができます。このアクションは、ユーザーの削除とは異なり、元に戻すことができます。
制限
- 一度に複数のユーザーを無効または有効にできません。
- ユーザーの主プロジェクトをアクティブに設定できません。
その結果、無効にしたユーザーは次のことができなくなります。
- Dashboard にログインする。
- RHOSP サービスにアクセスする。
- Dashboard でユーザープロジェクトアクションを実行する。
手順
- Dashboard に管理ユーザーとしてログインして Identity > Users を選択します。
-
Actions コラムでドロップダウンリストをクリックし、Enable User または Disable User を選択します。これにより、Enabled コラムの値が
TrueまたはFalseに更新されます。
2.4. Dashboard を使用したユーザーの削除 リンクのコピーリンクがクリップボードにコピーされました!
他のユーザーを削除するには、管理者ロールを持つユーザーである必要があります。このアクションを元に戻すことはできません。
- Dashboard に管理ユーザーとしてログインして アイデンティティー > ユーザー を選択します。
- 削除するユーザーを選択します。
- Delete Users をクリックします。Confirm Delete Users ウィンドウが表示されます。
- Delete Users をクリックしてアクションを確認します。
第3章 ロールの管理 リンクのコピーリンクがクリップボードにコピーされました!
Red Hat OpenStack Platform (RHOSP) はロールベースアクセス制御 (RBAC) のメカニズムを使用して、リソースへのアクセスを管理します。ロールは、ユーザーが実行可能なアクションを定義します。デフォルトでは、事前定義された 2 つのロールがあります。
- プロジェクトにアタッチするメンバーロール
- 管理者以外のユーザーが環境を管理できるようにする管理者ロール
Identity サービス (keystone) には、ロールリストに表示される reader ロールも追加されています。reader ロールは他の OpenStack プロジェクトに統合されておらず、サービス間で一貫性のない権限が提供されるため、使用しないでください。
また、環境に固有のカスタムロールを作成することもできます。
3.1. Red Hat OpenStack Platform 管理者ロールを理解する リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに admin のロールを割り当てると、このユーザーには、任意のプロジェクトの任意のリソースを表示、変更、作成、または削除する権限があります。このユーザーは、公開されている Glance イメージやプロバイダーネットワークなど、プロジェクト間でアクセスできる共有リソースを作成できます。さらに、admin ロールを持つユーザーは、ユーザーを作成または削除し、ロールを管理できます。
ユーザーに admin ロールを割り当てるプロジェクトは、openstack コマンドが実行されるデフォルトのプロジェクトです。たとえば、development という名前のプロジェクトの admin ユーザーが次のコマンドを実行すると、internal-network という名前のネットワークが development プロジェクトに作成されます。
openstack network create internal-network
openstack network create internal-network
admin ユーザーは、--project パラメーターを使用して、任意のプロジェクトに internal-network を作成できます。
openstack network create internal-network --project testing
openstack network create internal-network --project testing
3.2. CLI を使用したロールの表示 リンクのコピーリンクがクリップボードにコピーされました!
管理者は、既存のロールの詳細を表示できます。
手順
使用可能な事前定義済みロールをリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 指定したロールの詳細を表示します。
openstack role show admin
$ openstack role show adminCopy to Clipboard Copied! Toggle word wrap Toggle overflow Example
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
各ロールに関連付けられた権限に関する情報を取得するには、各 API 呼び出しへのアクセスを監査する必要があります。詳細は、API アクセスの監査 を参照してください。
3.3. CLI を使用したロールの作成と割り当て リンクのコピーリンクがクリップボードにコピーされました!
管理者は、次の一連のコマンドを使用して、Identity サービス (keystone) クライアントを使用してロールを作成および管理できます。各 Red Hat OpenStack Platform デプロイメントには、最低でもプロジェクト、ユーザー、ロールが 1 つずつあり、それらが連携している必要があります。
複数のプロジェクトにユーザーを割り当てることができます。複数のプロジェクトにユーザーを割り当てるには、ロールを作成して、ユーザーとプロジェクトのペアにそのロールを割り当てます。
ユーザー、ロール、またはプロジェクトの指定には、名前または ID のいずれかを使用できます。
手順
new-roleロールを作成します。openstack role create <role_name>
$ openstack role create <role_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトにユーザーを割り当てるには、まず以下のコマンドを使用して、ユーザー、ロール、およびプロジェクト名または ID を見つけます。
- openstack user list
- openstack role list
- openstack project list
ユーザーとプロジェクトのペアにロールを割り当てます。
openstack role add <role_name> --user <user_name> --project <project_name>
$ openstack role add <role_name> --user <user_name> --project <project_name>Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
demoプロジェクトのadminユーザーにadminロールを割り当てています。openstack role add admin --user admin --project demo
$ openstack role add admin --user admin --project demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow adminユーザーのロール割り当てを確認します。openstack role assignment list --user <user_name> --project <project_name> --names
$ openstack role assignment list --user <user_name> --project <project_name> --namesCopy to Clipboard Copied! Toggle word wrap Toggle overflow 以下の例では、
adminユーザーがadminロールでdemoプロジェクトに割り当てられていることを確認します。
3.4. 暗黙的なロール リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) は、ユーザーが特定のロールに割り当てられていることを確認してアクセス制御を適用します。Identity サービスは暗黙的なロール割り当てを使用します。ユーザーをロールに明示的に割り当てると、ユーザーは追加のロールにも暗黙的に割り当てられます。Red Hat OpenStack Platform での、デフォルトの暗黙的なロールを表示することができます。
Identity サービス (keystone) には、ロールリストに表示される reader ロールも追加されています。reader ロールは他の OpenStack サービスに統合されておらず、サービス間で一貫性のない権限が提供されるため、使用しないでください。
より高い権限を持つロールには、より低い権限を持つロールに関連付けられた権限が含まれます。上記のデフォルトの暗黙的なロールでは、admin には member が、member には reader が含まれます。暗黙的なロールを使用すると、ユーザーのロール割り当てが累積的に処理されるため、ユーザーは下位ロールを継承します。
3.4.1. 暗黙的なロールの作成 リンクのコピーリンクがクリップボードにコピーされました!
カスタムロールを使用する場合は、暗黙的な関連付けを作成できます。
新たなロールを作成する場合、デフォルトではこのロールには member ロールと同じアクセスポリシーが設定されます。カスタムロールの一意のポリシーの作成については、アクセス制御にポリシーファイルを使用する を参照してください。
手順
次のコマンドを使用して、別のロールに含まれるロールを指定します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
検証
すべての暗黙的なロールをリスト表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
暗黙的な関連付けに誤りがある場合は、変更を元に戻すことができます。
openstack implied role delete manager --implied-role poweruser
openstack implied role delete manager --implied-role poweruser
第4章 グループの管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) グループを使用すると、一定のパーミッションを複数のユーザーアカウントに割り当てることができます。
4.1. コマンドラインの使用 リンクのコピーリンクがクリップボードにコピーされました!
グループを作成し、グループに権限を割り当てます。グループのメンバーは、グループに割り当てたものと同じ権限を継承します。
grp-Auditorsというグループを作成します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow keystone グループのリストを表示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow memberロールを使用してdemoプロジェクトにアクセスするためのgrp-Auditorsグループパーミッションを付与します。openstack role add member --group grp-Auditors --project demo
$ openstack role add member --group grp-Auditors --project demoCopy to Clipboard Copied! Toggle word wrap Toggle overflow 既存のユーザー
user1をgrp-Auditorsグループに追加します。openstack group add user grp-Auditors user1 user1 added to group grp-Auditors
$ openstack group add user grp-Auditors user1 user1 added to group grp-AuditorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow user1がgrp-Auditorsのメンバーであることを確認します。openstack group contains user grp-Auditors user1 user1 in group grp-Auditors
$ openstack group contains user grp-Auditors user1 user1 in group grp-AuditorsCopy to Clipboard Copied! Toggle word wrap Toggle overflow user1に割り当てられている有効なパーミッションを確認します。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
4.2. Dashboard の使用 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard を使用して keystone グループのメンバーシップを管理することができます。ただし、グループにロール権限を割り当てるには、コマンドラインを使用する必要があります。詳細については、コマンドラインの使用 を参照してください。
4.2.1. グループの作成 リンクのコピーリンクがクリップボードにコピーされました!
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Groups を選択します。
- +Create Group をクリックします。
- グループの名前と説明を入力します。
- Create Group をクリックします。
4.2.2. グループメンバーシップの管理 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard を使用して keystone グループのメンバーシップを管理できます。
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Groups を選択します。
- 編集するグループの Manage Members をクリックします。
- Add users を使用して、グループにユーザーを追加します。ユーザーを削除する場合には、そのユーザーのチェックボックスを選択して、Remove users をクリックします。
第5章 クォータ管理 リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、プロジェクトのクォータを設定、管理できます。各プロジェクトには、リソースが割り当てられており、プロジェクトユーザーには、これらのリソースを使用するパーミッションが付与されます。これにより、相互のパーミッションやリソースを干渉することなく、複数のプロジェクトが単一のクラウドを使用できます。リソースクォータのセットは、新規プロジェクトの作成時に事前設定されます。クォータには、プロジェクトに割り当て可能な仮想 CPU、インスタンス、RAM、および Floating IP の数量が含まれます。クォータは、プロジェクトレベルと、プロジェクトのユーザーレベルの両方で実行できます。Dashboard を使用して新規/既存のプロジェクトの Compute または Block Storage のクォータを設定または変更することができます。詳細は、6章プロジェクト管理 を参照してください。
5.1. ユーザーのコンピュートクォータの表示 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーに現在設定されているクォータの値をリスト表示するには、以下のコマンドを実行します。
nova quota-show --user [USER] --tenant [TENANT]
$ nova quota-show --user [USER] --tenant [TENANT]
例
5.2. ユーザーのコンピュートクォータの更新 リンクのコピーリンクがクリップボードにコピーされました!
特定のクォータ値を更新するには、以下のコマンドを実行します。
nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT] nova quota-show --user [USER] --tenant [TENANT]
$ nova quota-update --user [USER] --[QUOTA_NAME] [QUOTA_VALUE] [TENANT]
$ nova quota-show --user [USER] --tenant [TENANT]
例
quota-update コマンドのオプションリストを表示するには、以下を実行します。
nova help quota-update
$ nova help quota-update
5.3. ユーザーの Object Storage クォータの設定 リンクのコピーリンクがクリップボードにコピーされました!
オブジェクトストレージクォータは、以下のカテゴリーに分類できます。
- コンテナークォータ: 合計サイズ (バイト単位) または単一のコンテナーで保存可能なオブジェクト数を制限します。
- アカウントクォータ: Object Storage サービスでユーザーが利用可能な合計サイズ (バイト単位) を制限します。
コンテナークォータまたはアカウントクォータのいずれかを設定するには、Object Storage プロキシーサーバーにおいて、proxy-server.conf ファイルの [pipeline:main] セクションに container_quotas または account_quotas (または両方) のパラメーターを追加する必要があります。
オブジェクトストレージクォータの表示および更新には、以下のコマンドを使用します。プロジェクトに含まれるすべてのユーザーには、そのプロジェクトに指定されているクォータが表示されます。プロジェクトに設定されているオブジェクトストレージのクォータを更新するには、そのプロジェクトの ResellerAdmin のロールが必要です。
アカウントクォータを表示するには、以下のコマンドを実行します。
クォータを更新するには、以下を実行します。
swift post -m quota-bytes:<BYTES>
# swift post -m quota-bytes:<BYTES>
たとえば、アカウントに 5 GB のクォータを指定します。
swift post -m quota-bytes:5368709120
# swift post -m quota-bytes:5368709120
第6章 プロジェクト管理 リンクのコピーリンクがクリップボードにコピーされました!
6.1. プロジェクト管理 リンクのコピーリンクがクリップボードにコピーされました!
クラウド管理者は、プロジェクトを作成、管理することができます。プロジェクトは共有仮想リソースのプールで、OpenStack のユーザーおよびグループを割り当てることができます。各プロジェクトで共有仮想リソースのクォータを設定できます。Red Hat OpenStack Platform では、相互に権限およびリソースが干渉しない複数のプロジェクトを作成できます。ユーザーは、複数のプロジェクトに割り当てることができます。各ユーザーには、割り当てられた各プロジェクトに指定されたロールが設定されている必要があります。
6.1.1. プロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを作成し、プロジェクトにメンバーを追加し、プロジェクトリソースの制限を設定します。
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Projects を選択します。
- Create Project をクリックします。
- Project Information タブで、プロジェクトの名前と説明を入力します。デフォルトで、Enabled のチェックボックスが選択されています。
- プロジェクトへのメンバーの追加は、Project Members タブの All Users リストから行います。
- Quotas タブで、プロジェクトのリソースの上限を指定します。
- Create Project をクリックします。
6.1.2. プロジェクトの編集 リンクのコピーリンクがクリップボードにコピーされました!
プロジェクトを編集して名前や説明を変更したり、プロジェクトを有効化または一時的に無効化したり、プロジェクトのメンバーを更新したりすることができます。
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Projects を選択します。
- プロジェクトの Actions コラムで、下向きの三角をクリックして Edit Project をクリックします。
- Edit Project ウィンドウでプロジェクトを更新して名前や説明を変更したり、プロジェクトを有効化または一時的に無効化したりすることができます。
- Project Members タブで、必要に応じてメンバーをプロジェクトに追加または削除します。
- Save をクリックします。
デフォルトで、Enabled のチェックボックスが選択されています。プロジェクトを一時的に無効にするには、Enabled のチェックボックスのチェックマークを外します。無効なプロジェクトを有効にするには、Enabled チェックボックスを選択します。
6.1.3. プロジェクトの削除 リンクのコピーリンクがクリップボードにコピーされました!
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Projects を選択します。
- 削除するプロジェクトを選択します。
- Delete Projects をクリックします。Confirm Delete Projects ウィンドウが表示されます。
- Delete Projects をクリックしてアクションを確認します。
プロジェクトが削除され、ユーザーとのペアリングの関連付けは解除されます。
6.1.4. プロジェクトクォータの更新 リンクのコピーリンクがクリップボードにコピーされました!
クォータとは、クラウドリソースを最適化するためにプロジェクトごとに設定する操作の制約のことです。クォータを設定して、通知なしにプロジェクトのリソースが使い果たされないようにします。クォータは、プロジェクトレベルとプロジェクトのユーザーレベルの両方で適用できます。
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Projects を選択します。
- プロジェクトの Actions コラムで、下向きの三角をクリックして Modify Quotas をクリックします。
- Quota タブで、必要に応じてプロジェクトクォータを変更します。
- 保存 をクリックします。
6.1.5. アクティブなプロジェクトの変更 リンクのコピーリンクがクリップボードにコピーされました!
Dashboard を使用してプロジェクトのオブジェクトを操作できるように、プロジェクトをアクティブなプロジェクトとして設定します。プロジェクトをアクティブなプロジェクトとして設定するには、プロジェクトのメンバーである必要があります。また、Set as Active Project オプションを有効にするには、ユーザーが複数のプロジェクトのメンバーである必要があります。プロジェクトを再度有効にしない限り、無効なプロジェクトをアクティブなプロジェクトとして設定することはできません。
- 管理者権限を持つユーザーとして Dashboard にログインします。
- Identity > Projects を選択します。
- プロジェクトの Actions コラムで、下向きの三角をクリックして Set as Active Project をクリックします。
- または、管理者権限のないユーザーで、プロジェクトの Actions コラムの下向きの三角をクリックして Set as Active Project をクリックすると、このコラムのデフォルトアクションになります。
6.2. プロジェクトの階層 リンクのコピーリンクがクリップボードにコピーされました!
6.2.1. Identity サービスの階層型マルチテナンシー (HMT) リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) のマルチテナンシーを使用して、プロジェクトを入れ子状にすることができます。マルチテナンシーにより、サブプロジェクトは親プロジェクトのロール割り当てを継承することができます。
6.2.1.1. プロジェクトとサブプロジェクトの作成 リンクのコピーリンクがクリップボードにコピーされました!
階層型マルチテナンシー (HMT) は keystone のドメインとプロジェクトを使用して実装することができます。まず最初に新規ドメインを作成して、そのドメイン内にプロジェクトを作成します。これで、そのプロジェクトにサブプロジェクトを追加できるようになります。また、ユーザーをサブプロジェクトの admin ロールに追加すると、そのサブプロジェクトの管理者に昇格できます。
keystone の使用する HMT の構造は、現在 Dashboard では表示されません。
1.corp という名前の keystone ドメインを新規作成します。
2.corp ドメイン内に親プロジェクト (private-cloud) を作成します。
3.private-cloud の親プロジェクト内で corp ドメインも指定して、サブプロジェクト (dev) を作成します。
4.qa という名前のサブプロジェクトをもう 1 つ作成します。
Identity API を使用してプロジェクトの階層を確認することができます。詳しくは、https://developer.openstack.org/api-ref/identity/v3/index.html?expanded=show-project-details-detail を参照してください。
6.2.1.2. ユーザーへのアクセス権の付与 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、新規作成したプロジェクトにはロールは割り当てられません。親プロジェクトに対するロールのパーミッションを割り当てるときに、--inherited フラグを指定して、サブプロジェクトが親プロジェクトからパーミッションを継承するように指定できます。たとえば、親プロジェクトに対する admin ロールのアクセス権のあるユーザーには、サブプロジェクトへの admin アクセス権も付与されます。
1.プロジェクトに割り当てられている既存のパーミッションを確認します。
openstack role assignment list --project private-cloud
$ openstack role assignment list --project private-cloud
2.既存のロールを確認します。
3.ユーザーアカウント user1 に、private-cloud プロジェクトに対するアクセス権を付与します。
openstack role add --user user1 --user-domain corp --project private-cloud member
$ openstack role add --user user1 --user-domain corp --project private-cloud member
このコマンドを --inherited フラグを使用して再実行します。その結果、user1 には private-cloud のサブプロジェクト (ロールの割り当てが継承されている) に対するアクセス権も付与されます。
openstack role add --user user1 --user-domain corp --project private-cloud member --inherited
$ openstack role add --user user1 --user-domain corp --project private-cloud member --inherited
4.パーミッションの更新の結果を確認します。
user1 ユーザーは、qa プロジェクトと dev プロジェクトへのアクセス権を継承しています。さらに、--inherited フラグが親プロジェクトに適用されたため、user1 は後から作成されたサブプロジェクトにもアクセスできるようになりました。
6.2.2. アクセス権の削除 リンクのコピーリンクがクリップボードにコピーされました!
明示的に割り当てられたパーミッションと継承されたパーミッションは別々に削除する必要があります。
1.明示的に割り当てられたロールからユーザーを削除します。
openstack role remove --user user1 --project private-cloud member
$ openstack role remove --user user1 --project private-cloud member
2.変更の結果を確認します。継承されたパーミッションがまだ存在している点に注意してください。
3.継承されたパーミッションを削除します。
openstack role remove --user user1 --project private-cloud member --inherited
$ openstack role remove --user user1 --project private-cloud member --inherited
4.変更の結果を確認します。継承されたパーミッションが削除され、出力が空になりました。
openstack role assignment list --effective --user user1 --user-domain corp
$ openstack role assignment list --effective --user user1 --user-domain corp
6.2.3. ネスティングされたクォータ リンクのコピーリンクがクリップボードにコピーされました!
現時点では、ネスティングされたクォータ はまだサポートされていません。そのため、クォータはプロジェクトとサブプロジェクトで別々に管理する必要があります。
6.2.4. Reseller の概要 リンクのコピーリンクがクリップボードにコピーされました!
Reseller プロジェクトでは、複数のドメインを階層化することを目標としています。このようなドメインでは、1 つのサブドメインは、完全に有効化された 1 つのクラウドを表現し、最終的にはクラウドの部分的な再販を考慮することができます。この開発の作業は複数の段階に分かれています。第 1 段階については以下に説明します。
6.2.4.1. Reseller の第 1 段階 リンクのコピーリンクがクリップボードにコピーされました!
Reseller (第 1 段階) は、「Identity サービスの階層型マルチテナンシー (HMT)」に記載の階層型マルチテナンシー (HMT) の延長です。従来 keystone ドメインは、データベースバックエンド内に独自のテーブルを備えた、ユーザーとプロジェクトを保管するためのコンテナーとすることを目的としていました。その結果、ドメインは独自のテーブルには保管されなくなり、プロジェクトのテーブルにマージされました。
-
ドメインは、ひとつのプロジェクトタイプとなり、
is_domainフラグで区別されます。 - ドメインは、プロジェクト階層の最上位のプロジェクトを表します。ドメインは、プロジェクト階層のルートです。
projectsサブパスを使用してドメインの作成と取得を行うように API が更新されました。-
新規ドメインを作成するには、
is_domainフラグを true に指定してプロジェクトを作成します。 -
ドメインであるプロジェクトをリスト表示します。
is_domainクエリーパラメーターを含むプロジェクトを取得します。
-
新規ドメインを作成するには、
~
6.3. プロジェクトのセキュリティー管理 リンクのコピーリンクがクリップボードにコピーされました!
セキュリティーグループとは、プロジェクトのインスタンスに割り当て可能な IP フィルターのルールセットで、インスタンスへのネットワークのアクセス権限を定義します。セキュリティーグループはプロジェクト別になっており、プロジェクトメンバーは自分のセキュリティーグループのデフォルトルールを編集して新規ルールセットを追加できます。
すべてのプロジェクトにはデフォルトのセキュリティーグループが存在し、他にセキュリティーグループが定義されていないインスタンスに対して適用されます。このセキュリティーグループは、デフォルト値を変更しない限り、インスタンスへの受信トラフィックをすべて拒否し、送信トラフィックのみを許可します。
セキュリティーグループは、インスタンス作成時に直接インスタンスに適用するか、実行中のインスタンスのポートに適用できます。
インスタンスの作成中に、ロールベースのアクセス制御 (RBAC) 共有セキュリティーグループを直接インスタンスに適用することはできません。RBAC 共有セキュリティーグループをインスタンスに適用するには、最初にポートを作成し、共有セキュリティーグループをそのポートに適用してから、そのポートをインスタンスに割り当てる必要があります。セキュリティーグループのポートへの追加 を参照してください。
必要な出力を許可するグループを作成せずに、デフォルトのセキュリティーグループを削除しないでください。たとえば、インスタンスが DHCP とメタデータを使用している場合、インスタンスには、DHCP サーバーとメタデータエージェントへの退出を許可するセキュリティーグループルールが必要です。
6.3.1. セキュリティーグループの作成 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、Create Security Group をクリックします。
- グループの名前と説明を入力して、Create Security Group をクリックします。
6.3.2. セキュリティーグループルールの追加 リンクのコピーリンクがクリップボードにコピーされました!
デフォルトでは、新しいグループには、送信アクセスのルールのみが指定されます。他のアクセスを指定するには、新しいルールを追加する必要があります。
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、編集するセキュリティーグループの Manage Rules をクリックします。
- Add Rule をクリックして、新規ルールを追加します。
ルールの値を指定して、Add をクリックします。
以下のルールのフィールドは必須です。
- ルール
ルールタイプ。ルールテンプレート (例: SSH) を指定する場合には、そのフィールドは自動的に入力されます。
- TCP: 一般的には、システム間のデータの交換や、エンドユーザーの通信に使用されます。
- UDP: 一般的には、システム間のデータ交換に (特にアプリケーションレベルで) 使用されます。
- ICMP: 一般的には、ルーターなどのネットワークデバイスがエラーや監視メッセージを送信するのに使用されます。
- 方向
- 受信 (インバウンド) または送信 (アウトバウンド)
- 開放するポート
TCP または UDP ルールでは、開放する Port または Port Range (単一のポートまたはポートの範囲) を入力します。
- ポート範囲では、From Port と To Port フィールドにポートの値を入力します。
- 単一のポートの場合は Port フィールドにポートの値を入力します。
- タイプ
- ICMP ルールのタイプ。-1:255 の範囲で指定する必要があります。
- コード
- ICMP ルールのコード。-1:255 の範囲で指定する必要があります。
- 接続相手
このルールが適用されるトラフィックの接続元
- CIDR (Classless Inter-Domain Routing): 指定のブロック内の IP へのアクセスを制限する IP アドレスブロック。ソース フィールドに CIDR を入力します。
- セキュリティーグループ: グループ内のインスタンスが他のグループインスタンスにアクセスできるようにするソースのセキュリティーグループ。
6.3.3. セキュリティーグループルールの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、セキュリティーグループの Manage Rules をクリックします。
- セキュリティーグループルールを選択し、Delete Rule ボタンをクリックします。
- 再度、Delete Rule をクリックします。
削除の操作は元に戻せません。
6.3.4. セキュリティーグループの削除 リンクのコピーリンクがクリップボードにコピーされました!
- Dashboard で プロジェクト > コンピュート > アクセスとセキュリティー を選択します。
- Security Groups タブで、グループを選択して、Delete Security Groups をクリックします。
- Delete Security Groups をクリックします。
削除の操作は元に戻せません。
第7章 ドメインの管理 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (keystone) ドメインは、keystone で作成可能な追加の名前空間です。keystone ドメインを使用して、ユーザー、グループ、プロジェクトを分割します。異なる LDAP または Active Directory 環境でユーザーを認証するように、これらの分離されたドメインを設定することも可能です。詳細は、Identity サービスとの統合 を参照してください。
Identity サービスには、Default という名前のドメインが組み込まれています。このドメインは、サービスアカウント専用に確保し、ユーザーアカウント用には別のドメインを作成することを推奨します。
7.1. ドメインリストの表示 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain list でドメインのリストを表示することができます。
7.2. 新規ドメインの作成 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain create を使用して新規ドメインを作成することができます。
7.3. ドメインの詳細情報の表示 リンクのコピーリンクがクリップボードにコピーされました!
openstack domain show でドメインの詳細情報を表示することができます。
7.4. ドメインの無効化 リンクのコピーリンクがクリップボードにコピーされました!
--disableでドメインを無効にすることができます。openstack domain set TestDomain --disable
$ openstack domain set TestDomain --disableCopy to Clipboard Copied! Toggle word wrap Toggle overflow ドメインが無効化されたことを確認します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 必要な場合には、ドメインを再度有効化することができます。
openstack domain set TestDomain --enable
$ openstack domain set TestDomain --enableCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第8章 アイデンティティー管理 リンクのコピーリンクがクリップボードにコピーされました!
8.1. セキュアな LDAP 通信 リンクのコピーリンクがクリップボードにコピーされました!
Identity サービス (Keystone) が LDAP サーバーに対して認証を行うか、LDAP サーバーから識別情報を取得するように設定した場合に、CA 証明書を使用して Identity サービスの LDAP 通信をセキュリティー保護することができます。
Active Directory から CA 証明書の取得し、CA 証明書ファイルを Privacy Enhanced Mail (PEM) ファイル形式に変換し、Identity サービス用にセキュアな LDAP 通信を設定する必要があります。CA 信頼が設定された場所および方法に応じて、3 つの方法のいずれかでこの設定を行うことができます。
8.1.1. Active Directory からの CA 証明書の取得 リンクのコピーリンクがクリップボードにコピーされました!
以下のコード例を使用して Active Directory に対してクエリーを実行し、CA 証明書を取得します。CA_NAME は証明書の名前に置き換え、その他のパラメーターは実際の設定に応じて変更することができます。
8.1.2. CA 証明書の PEM ファイル形式への変換 リンクのコピーリンクがクリップボードにコピーされました!
/path/cacert.pem という名前のファイルを作成し、Active Directory から CA 証明書を取得するための LDAP クエリーの内容をヘッダーとフッターの間に追加します。
-----BEGIN CERTIFICATE----- MIIDbzCCAlegAwIBAgIQQD14hh1Yz7tPFLXCkKUOszANB... -----END CERTIFICATE-----
-----BEGIN CERTIFICATE-----
MIIDbzCCAlegAwIBAgIQQD14hh1Yz7tPFLXCkKUOszANB... -----END
CERTIFICATE-----
トラブルシューティングを行う場合には、以下のクエリーを実行して LDAP が稼働しているかをチェックし、PEN 証明書ファイルが正しく作成されたことを確認してください。
LDAPTLS_CACERT=/path/cacert.pem ldapsearch -xLLL -ZZ -H $LDAPURL -s base -b "" "objectclass=*" currenttime
LDAPTLS_CACERT=/path/cacert.pem ldapsearch -xLLL -ZZ -H $LDAPURL -s base -b "" "objectclass=*" currenttime
このクエリーによって、以下のような結果が返されるはずです。
dn: currentTime: 20141022050611.0Z
dn: currentTime:
20141022050611.0Z
CA 証明書が Web サーバーでホストされていた場合には、以下のコマンドを実行して CA 証明書を取得することができます。
例
- $HOST=redhat.com
- $PORT=443
echo Q | openssl s_client -connect $HOST:$PORT | sed -n -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p'
# echo Q | openssl s_client -connect $HOST:$PORT | sed -n -e '/BEGIN CERTIFICATE/,/END CERTIFICATE/ p'
8.1.3. Identity サービスのセキュアな LDAP 通信を設定する方法 リンクのコピーリンクがクリップボードにコピーされました!
8.1.3.1. 方法 1 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が PEM ファイルを使用して LDAP レベルで設定されている場合は、この方法を使用してください。CA 証明書ファイルの場所は手動で指定します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。
-
CA 証明書チェーンが含まれているファイルを PEM 形式で
/etc/openldap/certsディレクトリーにコピーします。 /etc/openldap/ldap.confを編集して以下のディレクティブを追加します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。TLS_CACERT /etc/openldap/certs/[CA_FILE]
TLS_CACERT /etc/openldap/certs/[CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow horizon コンテナーを再起動します。
systemctl restart tripleo_horizon
# systemctl restart tripleo_horizonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.3.2. 方法 2 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が Network Security Services (NSS) データベースを介して LDAP ライブラリーレベルで設定されている場合は、この方法を使用します。certutil コマンドを使用して、OpenLDAP ライブラリーが使用する NSS 証明書データベースに CA 証明書をインポートし、信頼します。以下の手順では、Identity サービスだけでなく、OpenLDAP ライブラリーを使用する全アプリケーションの LDAP 通信が保護されます。
証明書をインポートして信頼します。[CA_FILE] は CA 証明書ファイルの場所と名前に置き換えます。
certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE] certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]
# certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE] # certutil -d /etc/openldap/certs -A -n "My CA" -t CT,, -a -i [CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書が正しくインポートされていることを確認します。
certutil -d /etc/openldap/certs -L
# certutil -d /etc/openldap/certs -LCopy to Clipboard Copied! Toggle word wrap Toggle overflow CA 証明書がリストされ、信頼の属性が CT,, に設定されます。
horizon コンテナーを再起動します。
systemctl restart tripleo_horizon
# systemctl restart tripleo_horizonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
8.1.3.3. 方法 3 リンクのコピーリンクがクリップボードにコピーされました!
CA 信頼が PEM ファイルを使用して Keystone レベルで設定されている場合は、この方法を使用します。このメソッドでは、Identity サービスと LDAP サーバー間の通信を保護するために Identity サービスに TLS を設定します。
ただし、上記の 2 つのメソッドとは異なり、このメソッドでは、Identity サービスの LDAP 通信のみが保護され、OpenLDAP ライブラリーを使用する他のアプリケーションの LDAP 通信は保護されません。
以下の手順では、openstack-config コマンドを使用して、/var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ファイルの値を編集します。
TLS を有効化します。
openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap use_tls True
# openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap use_tls TrueCopy to Clipboard Copied! Toggle word wrap Toggle overflow 証明書の場所を指定します。[CA_FILE] は CA 証明書ファイルの名前に置き換えます。
openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]
# openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_cacertfile [CA_FILE]Copy to Clipboard Copied! Toggle word wrap Toggle overflow LDAP サーバーから受信した TLS セッションに対して実行するクライアント証明書チェックを指定します。[CERT_BEHAVIOR] は、以下にあげる動作のいずれか 1 つに置き換えてください。
- demand
- LDAP サーバーにより証明書が常に要求されます。証明書が提供されなかった場合、または提供された証明書が既存の認証局ファイルに対して検証できなかった場合には、セッションは終了します。
- allow
- LDAP サーバーにより証明書が常に要求されます。証明書が提供されなくてもセッションは通常どおり続行されます。証明書が提供されたにもかかわらず、既存の認証局ファイルに対して検証できなかった場合、その証明書は無視され、セッションは通常どおり続行されます。
- never
- 証明書は一切要求されません。
openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]
# openstack-config --set /var/lib/config-data/puppet-generated/keystone/etc/keystone/keystone.conf ldap tls_req_cert [CERT_BEHAVIOR]Copy to Clipboard Copied! Toggle word wrap Toggle overflow keystone と horizon のコンテナーを再起動します。
systemctl restart tripleo_keystone systemctl restart tripleo_horizon
# systemctl restart tripleo_keystone # systemctl restart tripleo_horizonCopy to Clipboard Copied! Toggle word wrap Toggle overflow
第9章 アプリケーション認証情報 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション認証情報 を使用することで、設定ファイルにユーザーアカウントの認証情報を埋め込むことを回避できます。代わりに、ユーザーは、1 つのプロジェクトへのアクセスを委譲された、個別のシークレットを持つアプリケーション認証情報を作成します。ユーザーは、委譲されたアクセス権限をそのプロジェクト内の単一のロールに制限することもできます。これにより、すべてのプロジェクトおよびロールではなく、サービスが機能するのに必要な 1 つのプロジェクトおよびロールへのアクセス権限のみ付与でき、最小権限の原則に準拠できます。
この手法を使用すると、ユーザー認証情報を公開せずに API を消費することが可能になり、アプリケーションは埋め込まれたユーザー認証情報を必要とせずに Keystone に対して認証することができます。
アプリケーション認証情報を使用してトークンを生成し、アプリケーションの keystone_authtoken 設定を定義できます。これらのユースケースは、これ以降のセクションで説明します。
アプリケーション認証情報は、その認証情報を作成したユーザーアカウントに従属します。したがって、そのアカウントが削除されたり、該当するロールにアクセスできなくなったりすると、アプリケーション認証情報は機能しなくなります。
9.1. アプリケーション認証情報を使用したトークンの生成 リンクのコピーリンクがクリップボードにコピーされました!
ユーザーは、Dashboard のセルフサービス機能として、アプリケーション認証情報を利用できます。以下の例は、ユーザーがアプリケーション認証情報を作成し、それを使用してトークンを生成する方法を示しています。
テスト用プロジェクトおよびユーザーアカウントを作成します。
AppCredsという名前のプロジェクトを作成します。openstack project create AppCreds
$ openstack project create AppCredsCopy to Clipboard Copied! Toggle word wrap Toggle overflow AppCredsUserという名前のユーザーを作成します。openstack user create --project AppCreds --password-prompt AppCredsUser
$ openstack user create --project AppCreds --password-prompt AppCredsUserCopy to Clipboard Copied! Toggle word wrap Toggle overflow AppCredsUserに、AppCredsプロジェクトのmemberロールへのアクセス権限を付与します。openstack role add --user AppCredsUser --project AppCreds member
$ openstack role add --user AppCredsUser --project AppCreds memberCopy to Clipboard Copied! Toggle word wrap Toggle overflow
AppCredsUserとして Dashboard にログインし アプリケーション認証情報を作成します。Overview→Identity→Application Credentials→+Create Application Credentialに移動します。注記Your Application Credentialポップアップウィンドウを閉じると再アクセスできなくなるため、clouds.yamlファイルの内容をダウンロードしてください。CLI を使用して
/home/stack/.config/openstack/clouds.yamlという名前のファイルを作成し、clouds.yamlファイルの内容を貼り付けます。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記これらの値は、実際のデプロイメントとは異なる場合があります。
アプリケーション認証情報を使用してトークンを生成します。以下のコマンドを使用する場合、特定のユーザーとしてソースを提供しないでください。また、
clouds.yamlファイルのディレクトリーを現在の作業ディレクトリーにする必要があります。Copy to Clipboard Copied! Toggle word wrap Toggle overflow
__init__() got an unexpected keyword argument 'application_credential_secret' のようなエラーメッセージが表示される場合は、まだ以前の認証情報にソースを提供している可能性があります。新しい環境の場合は、sudo su - stack を実行します。
9.2. アプリケーション認証情報とアプリケーションの統合 リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション認証情報を使用して、アプリケーションを keystone に対して認証できます。アプリケーション認証情報を使用する場合 keystone_authtoken の設定では、認証タイプ v3applicationcredential が使用され、認証情報の作成プロセスで受け取った認証情報が含まれます。以下の値を設定します。
-
application_credential_secret: アプリケーション認証情報のシークレット -
application_credential_id: アプリケーション認証情報の ID -
(オプション)
application_credential_name: ID ではなく、名前付きのアプリケーション認証情報を使用する場合に、このパラメーターを使用することがあります。
以下に例を示します。
[keystone_authtoken] auth_url = http://10.0.0.10:5000/v3 auth_type = v3applicationcredential application_credential_id = "6cb5fa6a13184e6fab65ba2108adf50c" application_credential_secret = "<example password>"
[keystone_authtoken]
auth_url = http://10.0.0.10:5000/v3
auth_type = v3applicationcredential
application_credential_id = "6cb5fa6a13184e6fab65ba2108adf50c"
application_credential_secret = "<example password>"
9.3. コマンドラインを使用したアプリケーション認証情報の管理 リンクのコピーリンクがクリップボードにコピーされました!
コマンドラインを使用して、アプリケーション認証情報を作成および削除できます。
create サブコマンドにより、現在ソースを提供しているアカウントに基づいてアプリケーション認証情報が作成されます。たとえば、admin ユーザーとしてソースを提供している場合に認証情報を作成すると、同じロールがアプリケーション認証情報に付与されます。
--unrestricted パラメーターを使用すると、アプリケーション認証情報で他のアプリケーション認証情報と信頼を作成および削除できます。これは潜在的に危険な動作であり、デフォルトでは無効になっています。--unrestricted パラメーターは、他のアクセスルールと組み合わせて使用できません。
デフォルトでは、付与されるロールのメンバーシップには、認証情報を作成したアカウントに割り当てられたすべてのロールが含まれます。特定ロールだけを対象にアクセスを委譲して、ロールのメンバーシップを限定することができます。
アプリケーション認証情報を削除するには、以下のコマンドを実行します。
openstack application credential delete AppCredsUser
$ openstack application credential delete AppCredsUser
9.4. 運用タスク リンクのコピーリンクがクリップボードにコピーされました!
9.4.1. 既存アプリケーション認証情報の置き換え リンクのコピーリンクがクリップボードにコピーされました!
アプリケーション認証情報は、その認証情報を作成したユーザーアカウントにバインドされます。したがって、そのユーザーアカウントが削除されたり、ユーザーが委譲されたロールにアクセスできなくなったりすると、アプリケーション認証情報は無効になります。そのため、必要に応じて新しいアプリケーション認証情報を生成する準備が必要になります。
9.4.2. 設定ファイルを使用する場合 リンクのコピーリンクがクリップボードにコピーされました!
(設定ファイルを使用して) アプリケーションに割り当てられたアプリケーション認証情報を更新します。
- 新しいアプリケーション認証情報のセットを作成します。
- アプリケーションの設定ファイルに新しい認証情報を追加し、既存の認証情報と置き換えます。詳細は、「アプリケーション認証情報とアプリケーションの統合」 を参照してください。
- アプリケーションのサービスを再起動して、変更を適用します。
- 必要に応じて、古いアプリケーション認証情報を削除します。コマンドラインオプションの詳細は、「コマンドラインを使用したアプリケーション認証情報の管理」を参照してください。
9.4.3. clouds.yaml ファイルを使用する場合 リンクのコピーリンクがクリップボードにコピーされました!
clouds.yaml によって使用される既存のアプリケーション認証情報を置き換えるには、以下の手順を実施します。
たとえば、clouds.yaml に AppCred1 という名前のアプリケーション認証情報が含まれ、まもなく有効期限が切れるとします。
- AppCred2 という名前のアプリケーション認証情報を作成します。
-
新しい
AppCred2をclouds.yamlファイルに追加し、AppCred1の設定を削除します。 -
clouds.yamlでトークンを生成し、認証情報が予想通りに機能していることを確認します。詳細は、「アプリケーション認証情報を使用したトークンの生成」のステップ 4 を参照してください。