More AWS work to come for Elasticsearch, Elastic Beanstock, and IAM. We are using this test simply to separate the men from the boys so we don't waste each other's time. Think of it as a interview question that will be tested and then paid for.
In this problem space we are looking for security best practices so experience with IAM is a must.
* Must use IAM security to expose the minimal permissions to insure only users with a specific set of permissions (e.g. only users with snapshot upload permissions can do this)
E.g. Use IAM Group, User, Policy objects unless you have a better idea
Pr-requisite steps not required in the documentation
* Create an AWS Elasticsearch Domain
* Create S3 storage
* How to obtain an object's arn or endpoint
* How to obtain the user's key values
Payment: The supplied/"delivered document" must be able to be re-created in an AWS Free-Tier account and work. The testing steps performed will be as follows
1. Create an Free Tier AWS account
2. Create an AWS Elasticsearch Domain
2.1 Verify the domain's health via curl -XGET ...
2.2 Verify no snapshot registry's exist via curl -XGET ... /_snapshot/_all
and remove if exists via curl -XDELETE ...
3. Create an S3 storage bucket for uploading the new database
3.1 Verify the bucket works by uploading an Elasticsearch repository
4. Create the supplied IAM objects
5. Create the snapshot registry via the supplied curl statement replaced with
e.g. curl -XPUT ... _snapshot ...
5.1 Verify the snapshot is created
e.g. curl -XGET ... _snapshot/_all
6. Remove all indexes from the AWS Elasticsearch Domain
e.g. curl -XDELETE ... /_all or *
7. Restore the AWS Elasticsearch Domain from the S3 snapshot
e.g. curl -s -XPOST ... /_restore
7.1 Verify the indexes now exist
e.g. curl ... /_cat/indices?v"
8. Make payment
You will be asked to answer the following questions when submitting a proposal:
What does the error message "Cross-account pass role is not allowed" mean to you?
What does the error message "settings.role_arn is needed for snapshot registration" mean to you?