How to register a new S3 bucket as a snapshot repository to my existing elastic cloud?

Hello,

I want to use my own S3 bucket as a snapshot repository in case we sometime decide to not use elastic cloud for some reason we don't loose the data ingested until that moment. Is there a way to easily add one? In self hosted we are using elastic keys to store the S3 access keys how can we do that on elastic cloud.

Thanks you in advance.

1 Like

From your cloud console, go to security tab and click on "Add settings" in the "Elasticsearch keystore" section.

1 Like

I have created two keys with the names s3.client.default.access_key and s3.client.default.secret_key with the values from what I got from aws bucket creation. Then I have created a new repository on the elastic.cloud kibana which looks like this

having the whole repository setting like this: but when I try to check the repository I get the following error messages:

  "type": "repository_exception",
  "reason": "[xxx-cloud.elastic.co] Could not determine repository generation from root blobs",
  "caused_by": {
    "type": "illegal_argument_exception",
    "reason": "Unknown s3 client name [xxx-cloud.elastic.co-RW]. Existing client configs: elastic-internal-0f2aaa,default",
    "stack_trace": "java.lang.IllegalArgumentException: Unknown s3 client name [xxx-cloud.elastic.co-RW]. Existing client configs: elastic-internal-0f2aaa,default\n\tat org.elasticsearch.repositories.s3.S3Service.settings(S3Service.java:120)\n\tat org.elasticsearch.repositories.s3.S3Service.client(S3Service.java:73)\n\tat org.elasticsearch.repositories.s3.S3BlobStore.clientReference(S3BlobStore.java:114)\n\tat org.elasticsearch.repositories.s3.S3BlobContainer.listBlobsByPrefix(S3BlobContainer.java:248)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.listBlobsToGetLatestIndexId(BlobStoreRepository.java:2092)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.latestIndexBlobId(BlobStoreRepository.java:2074)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.doGetRepositoryData(BlobStoreRepository.java:1507)\n\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\n\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:732)\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)\n\tat java.base/java.lang.Thread.run(Thread.java:832)\n"
  },
  "stack_trace": "RepositoryException[[xxx-cloud.elastic.co] Could not determine repository generation from root blobs]; nested: IllegalArgumentException[Unknown s3 client name [redcap-cloud.elastic.co-RW]. Existing client configs: elastic-internal-0f2aaa,default];\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.doGetRepositoryData(BlobStoreRepository.java:1510)\n\tat org.elasticsearch.action.ActionRunnable$2.doRun(ActionRunnable.java:62)\n\tat org.elasticsearch.common.util.concurrent.ThreadContext$ContextPreservingAbstractRunnable.doRun(ThreadContext.java:732)\n\tat org.elasticsearch.common.util.concurrent.AbstractRunnable.run(AbstractRunnable.java:26)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1130)\n\tat java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:630)\n\tat java.base/java.lang.Thread.run(Thread.java:832)\nCaused by: java.lang.IllegalArgumentException: Unknown s3 client name [redcap-cloud.elastic.co-RW]. Existing client configs: elastic-internal-0f2aaa,default\n\tat org.elasticsearch.repositories.s3.S3Service.settings(S3Service.java:120)\n\tat org.elasticsearch.repositories.s3.S3Service.client(S3Service.java:73)\n\tat org.elasticsearch.repositories.s3.S3BlobStore.clientReference(S3BlobStore.java:114)\n\tat org.elasticsearch.repositories.s3.S3BlobContainer.listBlobsByPrefix(S3BlobContainer.java:248)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.listBlobsToGetLatestIndexId(BlobStoreRepository.java:2092)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.latestIndexBlobId(BlobStoreRepository.java:2074)\n\tat org.elasticsearch.repositories.blobstore.BlobStoreRepository.doGetRepositoryData(BlobStoreRepository.java:1507)\n\t... 6 more\n"
}

Any idea what I do wrong?

1 Like

Nevermind I have figured it out.

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.