役割制限

役割制限は、役割が有効であるべき条件を指定するために使用できます。条件が満たされない場合、役割は無効になり、アクセスが拒否されます。制限を指定しない場合、役割は制限されず、常に有効です。これがデフォルトの動作です。

現在、役割制限はAPIキーのみにサポートされており、APIキーは単一の役割記述子のみを持つことができます。

ワークフロー

ワークフローは、特定のREST APIを呼び出すときにのみ役割が有効になるように制限することを可能にします。ワークフローによって許可されていないREST APIを呼び出すと、役割は無効になります。以下のセクションでは、役割を制限できるワークフローをリストします:

ワークフロー名は大文字と小文字を区別します。

以下の例は、search_application_queryワークフローに対して制限を持つAPIキーを作成します。この制限により、Search Application Search APIのみを呼び出すことができます:

Python

  1. resp = client.security.create_api_key(
  2. name="my-restricted-api-key",
  3. role_descriptors={
  4. "my-restricted-role-descriptor": {
  5. "indices": [
  6. {
  7. "names": [
  8. "my-search-app"
  9. ],
  10. "privileges": [
  11. "read"
  12. ]
  13. }
  14. ],
  15. "restriction": {
  16. "workflows": [
  17. "search_application_query"
  18. ]
  19. }
  20. }
  21. },
  22. )
  23. print(resp)

Js

  1. const response = await client.security.createApiKey({
  2. name: "my-restricted-api-key",
  3. role_descriptors: {
  4. "my-restricted-role-descriptor": {
  5. indices: [
  6. {
  7. names: ["my-search-app"],
  8. privileges: ["read"],
  9. },
  10. ],
  11. restriction: {
  12. workflows: ["search_application_query"],
  13. },
  14. },
  15. },
  16. });
  17. console.log(response);

コンソール

  1. POST /_security/api_key
  2. {
  3. "name": "my-restricted-api-key",
  4. "role_descriptors": {
  5. "my-restricted-role-descriptor": {
  6. "indices": [
  7. {
  8. "names": ["my-search-app"],
  9. "privileges": ["read"]
  10. }
  11. ],
  12. "restriction": {
  13. "workflows": ["search_application_query"]
  14. }
  15. }
  16. }
  17. }