- Introducing Elasticsearch Service
- Adding data to Elasticsearch
- Migrating data
- Ingesting data from your application
- Ingest data with Node.js on Elasticsearch Service
- Ingest data with Python on Elasticsearch Service
- Ingest data from Beats to Elasticsearch Service with Logstash as a proxy
- Ingest data from a relational database into Elasticsearch Service
- Ingest logs from a Python application using Filebeat
- Ingest logs from a Node.js web application using Filebeat
- Configure Beats and Logstash with Cloud ID
- Best practices for managing your data
- Configure index management
- Enable cross-cluster search and cross-cluster replication
- Access other deployments of the same Elasticsearch Service organization
- Access deployments of another Elasticsearch Service organization
- Access deployments of an Elastic Cloud Enterprise environment
- Access clusters of a self-managed environment
- Enabling CCS/R between Elasticsearch Service and ECK
- Edit or remove a trusted environment
- Migrate the cross-cluster search deployment template
- Manage data from the command line
- Preparing a deployment for production
- Securing your deployment
- Monitoring your deployment
- Monitor with AutoOps
- Configure Stack monitoring alerts
- Access performance metrics
- Keep track of deployment activity
- Diagnose and resolve issues
- Diagnose unavailable nodes
- Why are my shards unavailable?
- Why is performance degrading over time?
- Is my cluster really highly available?
- How does high memory pressure affect performance?
- Why are my cluster response times suddenly so much worse?
- How do I resolve deployment health warnings?
- How do I resolve node bootlooping?
- Why did my node move to a different host?
- Snapshot and restore
- Managing your organization
- Your account and billing
- Billing Dimensions
- Billing models
- Using Elastic Consumption Units for billing
- Edit user account settings
- Monitor and analyze your account usage
- Check your subscription overview
- Add your billing details
- Choose a subscription level
- Check your billing history
- Update billing and operational contacts
- Stop charges for a deployment
- Billing FAQ
- Elasticsearch Service hardware
- Elasticsearch Service GCP instance configurations
- Elasticsearch Service GCP default provider instance configurations
- Elasticsearch Service AWS instance configurations
- Elasticsearch Service AWS default provider instance configurations
- Elasticsearch Service Azure instance configurations
- Elasticsearch Service Azure default provider instance configurations
- Change hardware for a specific resource
- Elasticsearch Service regions
- About Elasticsearch Service
- RESTful API
- Release notes
- March 25, 2025
- Enhancements and bug fixes - March 2025
- Enhancements and bug fixes - February 2025
- Enhancements and bug fixes - January 2025
- Enhancements and bug fixes - December 2024
- Enhancements and bug fixes - November 2024
- Enhancements and bug fixes - Late October 2024
- Enhancements and bug fixes - Early October 2024
- Enhancements and bug fixes - September 2024
- Enhancements and bug fixes - Late August 2024
- Enhancements and bug fixes - Early August 2024
- Enhancements and bug fixes - July 2024
- Enhancements and bug fixes - Late June 2024
- Enhancements and bug fixes - Early June 2024
- Enhancements and bug fixes - Early May 2024
- Bring your own key, and more
- AWS region EU Central 2 (Zurich) now available
- GCP region Middle East West 1 (Tel Aviv) now available
- Enhancements and bug fixes - March 2024
- Enhancements and bug fixes - January 2024
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- AWS region EU North 1 (Stockholm) now available
- GCP regions Asia Southeast 2 (Indonesia) and Europe West 9 (Paris)
- Enhancements and bug fixes
- Enhancements and bug fixes
- Bug fixes
- Enhancements and bug fixes
- Role-based access control, and more
- Newly released deployment templates for Integrations Server, Master, and Coordinating
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Enhancements and bug fixes
- Cross environment search and replication, and more
- Enhancements and bug fixes
- Enhancements and bug fixes
- Azure region Canada Central (Toronto) now available
- Azure region Brazil South (São Paulo) now available
- Azure region South Africa North (Johannesburg) now available
- Azure region Central India (Pune) now available
- Enhancements and bug fixes
- Azure new virtual machine types available
- Billing Costs Analysis API, and more
- Organization and billing API updates, and more
- Integrations Server, and more
- Trust across organizations, and more
- Organizations, and more
- Elastic Consumption Units, and more
- AWS region Africa (Cape Town) available
- AWS region Europe (Milan) available
- AWS region Middle East (Bahrain) available
- Enhancements and bug fixes
- Enhancements and bug fixes
- GCP Private Link, and more
- Enhancements and bug fixes
- GCP region Asia Northeast 3 (Seoul) available
- Enhancements and bug fixes
- Enhancements and bug fixes
- Native Azure integration, and more
- Frozen data tier and more
- Enhancements and bug fixes
- Azure region Southcentral US (Texas) available
- Azure region East US (Virginia) available
- Custom endpoint aliases, and more
- Autoscaling, and more
- Cross-region and cross-provider support, warm and cold data tiers, and more
- Better feature usage tracking, new cost and usage analysis page, and more
- New features, enhancements, and bug fixes
- AWS region Asia Pacific (Hong Kong)
- Enterprise subscription self service, log in with Microsoft, bug fixes, and more
- SSO for Enterprise Search, support for more settings
- Azure region Australia East (New South Wales)
- New logging features, better GCP marketplace self service
- Azure region US Central (Iowa)
- AWS region Asia Pacific (Mumbai)
- Elastic solutions and Microsoft Azure Marketplace integration
- AWS region Pacific (Seoul)
- AWS region EU West 3 (Paris)
- Traffic management and improved network security
- AWS region Canada (Central)
- Enterprise Search
- New security setting, in-place configuration changes, new hardware support, and signup with Google
- Azure region France Central (Paris)
- Regions AWS US East 2 (Ohio) and Azure North Europe (Ireland)
- Our Elasticsearch Service API is generally available
- GCP regions Asia East 1 (Taiwan), Europe North 1 (Finland), and Europe West 4 (Netherlands)
- Azure region UK South (London)
- GCP region US East 1 (South Carolina)
- GCP regions Asia Southeast 1 (Singapore) and South America East 1 (Sao Paulo)
- Snapshot lifecycle management, index lifecycle management migration, and more
- Azure region Japan East (Tokyo)
- App Search
- GCP region Asia Pacific South 1 (Mumbai)
- GCP region North America Northeast 1 (Montreal)
- New Elastic Cloud home page and other improvements
- Azure regions US West 2 (Washington) and Southeast Asia (Singapore)
- GCP regions US East 4 (N. Virginia) and Europe West 2 (London)
- Better plugin and bundle support, improved pricing calculator, bug fixes, and more
- GCP region Asia Pacific Southeast 1 (Sydney)
- Elasticsearch Service on Microsoft Azure
- Cross-cluster search, OIDC and Kerberos authentication
- AWS region EU (London)
- GCP region Asia Pacific Northeast 1 (Tokyo)
- Usability improvements and Kibana bug fix
- GCS support and private subscription
- Elastic Stack 6.8 and 7.1
- ILM and hot-warm architecture
- Elasticsearch keystore and more
- Trial capacity and more
- APM Servers and more
- Snapshot retention period and more
- Improvements and snapshot intervals
- SAML and multi-factor authentication
- Next generation of Elasticsearch Service
- Branding update
- Minor Console updates
- New Cloud Console and bug fixes
- What’s new with the Elastic Stack
Secure your clusters with OpenID Connect
editSecure your clusters with OpenID Connect
editYou can secure your deployment using OpenID Connect for single sign-on. OpenID Connect is an identity layer on top of the OAuth 2.0 protocol. The end user identity gets verified by an authorization server and basic profile information is sent back to the client.
For a detailed description of how to implement OpenID Connect with various OpenID Connect Providers (OPs), check Set up OpenID Connect with Azure, Google, or Okta.
Before you begin
editTo prepare for using OpenID Connect for authentication for deployments:
-
Create or use an existing deployment. Make note of the Kibana endpoint URL, it will be referenced as
<KIBANA_ENDPOINT_URL>
in the following steps. -
The steps in this section required a moderate understanding of OpenID Connect in general and the Authorization Code Grant flow specifically. For more information about OpenID Connect and how it works with the Elastic Stack check:
Configure the OpenID Connect Provider
editThe OpenID Connect Provider (OP) is the entity in OpenID Connect that is responsible for authenticating the user and for granting the necessary tokens with the authentication and user information to be consumed by the Relying Parties (RP).
In order for Elasticsearch Service (acting as an RP) to be able use your OpenID Connect Provider for authentication, a trust relationship needs to be established between the OP and the RP. In the OpenID Connect Provider, this means registering the RP as a client.
The process for registering the Elasticsearch Service RP will be different from OP to OP and following the provider’s relevant documentation is prudent. The information for the RP that you commonly need to provide for registration are the following:
-
Relying Party Name
- An arbitrary identifier for the relying party. Neither the specification nor our implementation impose any constraints on this value.
-
Redirect URI
-
This is the URI where the OP will redirect the user’s browser after authentication. The appropriate value for this is
<KIBANA_ENDPOINT_URL>/api/security/oidc/callback
. This can also be called theCallback URI
.
At the end of the registration process, the OP assigns a Client Identifier and a Client Secret for the RP (Elasticsearch Service) to use. Note these two values as they are used in the cluster configuration.
Configure your cluster to use OpenID Connect
editYou’ll need to add the client secret to the keystore and then update the Elasticsearch user settings to refer to that secret and use the OpenID Connect realm.
Configure the Client Secret
editConfigure the Client Secret that was assigned to the PR by the OP during registration to the Elasticsearch keystore.
This is a sensitive setting, it won’t be stored in plaintext in the cluster configuration but rather as a secure setting. In order to do so, follow these steps:
-
Find your deployment on the home page in the Elasticsearch Service card and select Manage to access it directly. Or, select Hosted deployments to go to the deployments page to view all of your deployments.
On the deployments page you can narrow your deployments by name, ID, or choose from several other filters. To customize your view, use a combination of filters, or change the format from a grid to a list.
- From your deployment menu, select Security.
- Under the Elasticsearch keystore section, select Add settings.
-
On the Create setting window, select the secret Type to be
Single string
. -
Set the Setting name` to
xpack.security.authc.realms.oidc.<oidc-realm-name>.rp.client_secret
and add the Client Secret you received from the OP during registration in theSecret
field.<oidc-realm-name>
refers to the name of the OpenID Connect Realm. You can select any name that contains alphanumeric characters, underscores and hyphens. Replace<oidc-realm-name>
with the realm name you selected.After you configure the Client Secret, any attempt to restart the deployment will fail until you complete the rest of the configuration steps. If you wish to rollback the OpenID Connect related configuration effort, you need to remove the
xpack.security.authc.realms.oidc.<oidc-realm-name>.rp.client_secret
that was just added by using the "remove" button by the setting name underSecurity keys
. - You must also edit your cluster configuration, sometimes also referred to as the deployment plan, in order to add the appropriate settings.
Configure the user settings
editThe Elasticsearch cluster needs to be configured to use the OpenID Connect realm for user authentication and to map the applicable roles to the users. If you are using machine learning or a deployment with hot-warm architecture, you must include this OpenID Connect related configuration in the user settings section for each node type.
-
Update your Elasticsearch user settings for the
oidc
realm and specify the relevant configuration:xpack: security: authc: realms: oidc: oidc-realm-name: order: 2 rp.client_id: "client-id" rp.response_type: "code" rp.redirect_uri: "<KIBANA_ENDPOINT_URL>/api/security/oidc/callback" op.issuer: "<check with your OpenID Connect Provider>" op.authorization_endpoint: "<check with your OpenID Connect Provider>" op.token_endpoint: "<check with your OpenID Connect Provider>" op.userinfo_endpoint: "<check with your OpenID Connect Provider>" op.jwkset_path: "<check with your OpenID Connect Provider>" claims.principal: sub claims.groups: "http://example.info/claims/groups"
Defines the OpenID Connect realm name. The realm name can only contain alphanumeric characters, underscores, and hyphens
The order of the OpenID Connect realm in your authentication chain. Allowed values are between
2
and100
. Set to2
unless you plan on configuring multiple SSO realms for this cluster.This, usually opaque, arbitrary string, is the Client Identifier that was assigned to the Elasticsearch Service RP by the OP upon registration.
Replace
<KIBANA_ENDPOINT_URL>
with the value noted in the previous stepA url, used as a unique identifier for the OP. The value for this setting should be provided by your OpenID Connect Provider.
The URL for the Authorization Endpoint in the OP. This is where the user’s browser will be redirected to start the authentication process. The value for this setting should be provided by your OpenID Connect Provider.
The URL for the Token Endpoint in the OpenID Connect Provider. This is the endpoint where Elasticsearch Service will send a request to exchange the code for an ID Token, as part of the Authorization Code flow. The value for this setting should be provided by your OpenID Connect Provider.
(Optional) The URL for the UserInfo Endpoint in the OpenID Connect Provider. This is the endpoint of the OP that can be queried to get further user information, if required. The value for this setting should be provided by your OpenID Connect Provider.
The path to a file or an HTTPS URL pointing to a JSON Web Key Set with the key material that the OpenID Connect Provider uses for signing tokens and claims responses. Your OpenID Connect Provider should provide you with this file.
Defines the OpenID Connect claim that is going to be mapped to the principal (username) of the authenticated user in Kibana. In this example, we map the value of the
sub
claim, but this is not a requirement, other claims can be used too. See the claims mapping documentation for details and available options.Defines the OpenID Connect claim that is going to be used for role mapping. Note that the value
"http://example.info/claims/groups"
that is used here, is an arbitrary example. Check the claims mapping documentation for a very detailed description of how the claim mapping works and how can these be used for role mapping. The name of this claim should be determined by the configuration of your OpenID Connect Provider. NOTE: According to the OpenID Connect specification, the OP should also make their configuration available at a well known URL, which is the concatenation of theirIssuer
value with the.well-known/openid-configuration
string. To configure the OpenID Connect realm, refer to thehttps://op.org.com/.well-known/openid-configuration
documentation. -
By default, users authenticating through OpenID Connect have no roles assigned to them. For example, if you want all your users authenticating with OpenID Connect to get access to Kibana, issue the following request to Elasticsearch:
-
Update Kibana in the user settings configuration to use OpenID Connect as the authentication provider:
The name of the OpenID Connect realm. This needs to be the same value as the one used in the cluster configuration.
This configuration disables all other realms and only allows users to authenticate with OpenID Connect. If you wish to allow your native realm users to authenticate, you need to also enable the
basic
provider
like this: -
Optional: If your OpenID Connect Provider doesn’t publish its JWKS at an https URL, or if you want to use a local copy, you can upload the JWKS as a file.
-
Prepare a ZIP file with a custom bundle that contains your OpenID Connect Provider’s JWKS file (
op_jwks.json
) inside of anoidc
folder.This bundle allows all Elasticsearch containers to access the metadata file.
-
Update your Elasticsearch cluster on the deployments page to use the bundle you prepared in the previous step.
Custom bundles are unzipped under the path
/app/config/BUNDLE_DIRECTORY_STRUCTURE
, whereBUNDLE_DIRECTORY_STRUCTURE
is the directory structure in the ZIP file. Make sure to save the file location where custom bundles get unzipped, as you will need it in the next step.In our example, the OpenID Connect Provider JWK set file will be located in the path
/app/config/oidc/op_jwks.json
:$ tree . . └── oidc └── op_jwks.json
-
Adjust your
oidc
realm configuration accordingly:
-
Configure SSL
editOpenID Connect depends on TLS to provider security properties such as encryption in transit and endpoint authentication. The RP is required to establish back-channel communication with the OP in order to exchange the code for an ID Token during the Authorization code grant flow and in order to get additional user information from the UserInfo endpoint. As such, it is important that Elasticsearch Service can validate and trust the server certificate that the OP uses for TLS. Since the system truststore is used for the client context of outgoing https connections, if your OP is using a certificate from a trusted CA, no additional configuration is needed.
However, if your OP uses a certificate that is issued for instance, by a CA used only in your Organization, you must configure Elasticsearch Service to trust that CA.
-
Prepare a ZIP file with a
custom bundle
that contains the CA certificate (
company-ca.pem
) that signed the certificate your OpenID Connect Provider uses for TLS inside of anoidc-tls
folder -
Update your Elasticsearch cluster on the deployments page to use the bundle you prepared in the previous step.
Custom bundles are unzipped under the path
/app/config/BUNDLE_DIRECTORY_STRUCTURE
, whereBUNDLE_DIRECTORY_STRUCTURE
is the directory structure in the ZIP file. Make sure to save the file location where custom bundles get unzipped, as you will need it in the next step.In our example, the CA certificate file will be located in the path
/app/config/oidc-tls/company-ca.pem
:$ tree . . └── oidc-tls └── company-ca.pem
-
Adjust your
oidc
realm configuration accordingly:
Optional Settings
editThe following optional oidc realm settings are supported and can be set if needed:
-
op.endsession_endpoint
The URL to the End Session Endpoint in the OpenID Connect Provider. This is the endpoint where the user’s browser will be redirected after local logout, if the realm is configured for RP initiated Single Logout and the OP supports it. The value for this setting should be provided by your OpenID Connect Provider. -
rp.post_logout_redirect_uri
The Redirect URL where the OpenID Connect Provider should redirect the user after a successful Single Logout. This should be set to a value that will not trigger a new OpenID Connect Authentication,<KIBANA_ENDPOINT_URL>/security/logged_out
is a good choice for this parameter. -
rp.signature_algorithm
The signature algorithm that will be used by Elasticsearch in order to verify the signature of the ID tokens it will receive from the OpenID Connect Provider. Defaults toRSA256
. -
rp.requested_scopes
The scope values that will be requested by the OpenID Connect Provider as part of the Authentication Request. Defaults toopenid
, which is the only required scope for authentication. If your use case requires that you receive additional claims, you might need to request additional scopes, one ofprofile
,email
,address
,phone
. Note thatopenid
should always be included in the list of requested scopes.
On this page