본문 바로가기
WIKI 기술 지식 베이스

Workflow template security

원문 보기 위키 갱신

출처: 문서

본문

Workflow template security

OpenSearch에서는 Flow Framework 플러그인이 자동화된 워크플로 구성을 제공해요. Security 플러그인을 Flow Framework 플러그인과 함께 사용하면 관리자가 아닌 사용자의 특정 작업을 제한할 수 있어요. 예를 들어, 일부 사용자는 워크플로를 생성, 업데이트 또는 삭제만 할 수 있고, 다른 사용자는 워크플로를 보기만 할 수 있도록 할 수 있어요.

모든 Flow Framework 인덱스는 시스템 인덱스로 보호돼요. 슈퍼관리자 또는 TLS 인증서가 있는 관리자만 시스템 인덱스에 접근할 수 있어요. 자세한 내용은 시스템 인덱스를 참조하세요.

Flow Framework의 보안은 이상 탐지 보안과 비슷하게 설정돼요.

기본 권한

관리자 사용자는 Security 플러그인을 사용하여 사용자가 액세스해야 하는 API에 따라 특정 권한을 할당할 수 있어요. 지원되는 Flow Framework API 목록은 워크플로 API를 참조하세요.

Security 플러그인에는 대부분의 Flow Framework 사용 사례를 다루는 두 가지 기본 제공 역할이 있어요: flow_framework_full_access와 flow_framework_read_access예요. 각 역할에 대한 설명은 사전 정의된 역할을 참조하세요.

이러한 역할이 요구 사항을 충족하지 못하는 경우, 사용 사례에 맞게 개별 Flow Framework 권한을 사용자에게 할당할 수 있어요. 각 작업은 REST API의 작업에 대응해요. 예를 들어, cluster:admin/opensearch/flow_framework/workflow/search 권한을 사용하면 워크플로를 검색할 수 있어요.

세분화된 액세스 제어

의도하지 않은 사용자가 인덱스를 설명하는 메타데이터를 볼 가능성을 줄이기 위해, 관리자는 의도된 사용자 그룹에 권한을 할당할 때 역할 기반 액세스 제어를 활성화하는 것을 권장해요. 자세한 내용은 백엔드 역할별 액세스 제한을 참조하세요.

(고급) 백엔드 역할별 액세스 제한

백엔드 역할을 사용하여 역할에 따라 개별 워크플로에 대한 세분화된 액세스를 구성할 수 있어요. 예를 들어, 조직의 다른 부서에 있는 사용자는 자신의 부서가 소유한 워크플로를 볼 수 있어요.

먼저 사용자에게 적절한 백엔드 역할이 있는지 확인하세요. 백엔드 역할은 일반적으로 LDAP 서버 또는 SAML 공급자에서 제공되지만, 내부 사용자 데이터베이스를 사용하는 경우 API를 사용하여 수동으로 사용자를 생성할 수 있어요.

다음으로, 다음 설정을 활성화하세요:

PUT _cluster/settings
{
  "transient": {
    "plugins.flow_framework.filter_by_backend_roles": "true"
  }
}

{% include copy-curl.html %}

이제 사용자가 OpenSearch Dashboards에서 워크플로 리소스를 보거나 REST API 호출을 할 때, 하나 이상의 백엔드 역할을 공유하는 사용자가 생성한 워크플로만 볼 수 있어요.

예를 들어, 두 사용자 alice와 bob을 고려해 보세요.

alice는 analyst 백엔드 역할을 가지고 있어요:

PUT _plugins/_security/api/internalusers/alice
{
  "password": "alice",
  "backend_roles": [
    "analyst"
  ],
  "attributes": {}
}

bob은 human-resources 백엔드 역할을 가지고 있어요:

PUT _plugins/_security/api/internalusers/bob
{
  "password": "bob",
  "backend_roles": [
    "human-resources"
  ],
  "attributes": {}
}

alice와 bob 모두 Flow Framework API에 대한 전체 액세스 권한을 가지고 있어요:

PUT _plugins/_security/api/rolesmapping/flow_framework_full_access
{
  "backend_roles": [],
  "hosts": [],
  "users": [
    "alice",
    "bob"
  ]
}

백엔드 역할이 다르기 때문에 alice와 bob은 서로의 워크플로나 결과를 볼 수 없어요.

백엔드 역할이 없는 사용자도 flow_framework_read_access 권한이 있으면 다른 사용자의 워크플로 결과를 볼 수 있어요. 이는 flow_framework_full_access 권한이 있는 사용자에게도 적용되는데, 이 권한에는 flow_framework_read_access의 모든 권한이 포함되어 있기 때문이에요.

관리자는 flow_framework_read_access 권한을 통해 사용자가 직접 액세스할 수 없는 데이터를 포함하여 클러스터의 모든 워크플로 결과를 볼 수 있다는 점을 사용자에게 알려야 해요. 특정 워크플로의 결과에 대한 액세스를 제한하려면 관리자가 워크플로를 생성할 때 백엔드 역할 필터를 적용해야 해요. 이렇게 하면 일치하는 백엔드 역할이 있는 사용자만 해당 워크플로의 결과에 액세스할 수 있어요.

더 알아보기 (Learn more)