Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix downsample failure when FLS/DLS is enabled. #98587

Merged

Conversation

martijnvg
Copy link
Member

If FLS/DLS is enabled (this is the case when trial/licence is active and security is enabled) then invoking the downsample API results in immediate failure.

The downsample shard persistent task executor opens a searcher, but security didn't set indices permissions in the thread local (this happens via SecurityActionFilter). This will only happen on indices actions (which are actions with a request that implement IndicesRequest. This change does this by delegating to a transport action that executes always locally, and this way security prepares thread local headers correctly.

This adds another layer of indirection, but without doing this FLS/DLS wouldn't work.

Closes #98569

(Marking as a non-issue, because this a bug in not released code)

If FLS/DLS is enabled (this is the case when trial/licence is active and security is enabled) then invoking the downsample API results in immediate failure.

The downsample shard persistent task executor opens a searcher, but security didn't set indices permissions in the thread local (this happens via SecurityActionFilter). This will only happen on indices actions (which are actions with a request that implement IndicesRequest. This change does this by delegating to a transport action that executes always locally, and this way security prepares thread local headers correctly.

This adds another layer of indirection, but without doing this FLS/DLS wouldn't work.

Closes elastic#98569
@martijnvg martijnvg added >non-issue :StorageEngine/Downsampling Downsampling (replacement for rollups) - Turn fine-grained time-based data into coarser-grained data v8.11.0 v8.10.1 labels Aug 17, 2023
@elasticsearchmachine elasticsearchmachine added the Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) label Aug 17, 2023
@elasticsearchmachine
Copy link
Collaborator

Pinging @elastic/es-analytics-geo (Team:Analytics)

@kkrik-es kkrik-es self-requested a review August 17, 2023 13:02
- match: { hits.hits.0._source.k8s.pod.values: [1, 1, 3] }
- is_true: hits.hits.0._source.k8s.pod.running

# Assert rollup index settings
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

s/rollup/downsample/

@martijnvg martijnvg added auto-merge Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) auto-backport-and-merge Automatically create backport pull requests and merge when ready labels Aug 17, 2023
@elasticsearchmachine elasticsearchmachine merged commit 996a90b into elastic:main Aug 17, 2023
@martijnvg martijnvg deleted the downsampling_fix_fls_dls_issue branch August 17, 2023 14:17
martijnvg added a commit to martijnvg/elasticsearch that referenced this pull request Aug 17, 2023
If FLS/DLS is enabled (this is the case when trial/licence is active and
security is enabled) then invoking the downsample API results in
immediate failure.

The downsample shard persistent task executor opens a searcher, but
security didn't set indices permissions in the thread local (this
happens via SecurityActionFilter). This will only happen on indices
actions (which are actions with a request that implement IndicesRequest.
This change does this by delegating to a transport action that executes
always locally, and this way security prepares thread local headers
correctly.

This adds another layer of indirection, but without doing this FLS/DLS
wouldn't work.

Closes elastic#98569

(Marking as a non-issue, because this a bug in not released code)
@elasticsearchmachine
Copy link
Collaborator

💚 Backport successful

Status Branch Result
8.10

elasticsearchmachine pushed a commit that referenced this pull request Aug 17, 2023
If FLS/DLS is enabled (this is the case when trial/licence is active and
security is enabled) then invoking the downsample API results in
immediate failure.

The downsample shard persistent task executor opens a searcher, but
security didn't set indices permissions in the thread local (this
happens via SecurityActionFilter). This will only happen on indices
actions (which are actions with a request that implement IndicesRequest.
This change does this by delegating to a transport action that executes
always locally, and this way security prepares thread local headers
correctly.

This adds another layer of indirection, but without doing this FLS/DLS
wouldn't work.

Closes #98569

(Marking as a non-issue, because this a bug in not released code)
csoulios pushed a commit to csoulios/elasticsearch that referenced this pull request Aug 18, 2023
If FLS/DLS is enabled (this is the case when trial/licence is active and
security is enabled) then invoking the downsample API results in
immediate failure.

The downsample shard persistent task executor opens a searcher, but
security didn't set indices permissions in the thread local (this
happens via SecurityActionFilter). This will only happen on indices
actions (which are actions with a request that implement IndicesRequest.
This change does this by delegating to a transport action that executes
always locally, and this way security prepares thread local headers
correctly.

This adds another layer of indirection, but without doing this FLS/DLS
wouldn't work.

Closes elastic#98569

(Marking as a non-issue, because this a bug in not released code)
@quux00 quux00 added v8.10.0 and removed v8.10.1 labels Aug 24, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
auto-backport-and-merge Automatically create backport pull requests and merge when ready auto-merge Automatically merge pull request when CI checks pass (NB doesn't wait for reviews!) >non-issue :StorageEngine/Downsampling Downsampling (replacement for rollups) - Turn fine-grained time-based data into coarser-grained data Team:Analytics Meta label for analytical engine team (ESQL/Aggs/Geo) v8.10.0 v8.11.0
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Invoking downsampling results in a security exception
4 participants