README.md in chambermaid-0.5.5 vs README.md in chambermaid-1.0.0

- old
+ new

@@ -46,12 +46,14 @@ # Set `overload: true` to choose these params over existing # ones in ENV when they are merged together config.add_namespace("/my/important/namespace", overload: true) end -# Load after configuration -Chambermaid.load! +# If this is standalone ruby (not a Rails environment), +# call `Chambermaid.load!` after the configuration block +# +# Chambermaid.load! ``` **Reload SSM into ENV** ```ruby Chambermaid.reload! @@ -78,9 +80,65 @@ # Outside of config block Chambermaid.log_level = :warn ``` _Note: Chambermaid.logger is set to Rails.logger automatically if including inside a rails app_ + +### AWS Authentication + +Chambermaid expects your AWS credential configuration to live inside ENV on application load. + +> **Note:** `AWS_DEFAULT_REGION` or `AWS_REGION` is **required** + +You can use either: +* `AWS_ACCESS_KEY_ID` +* `AWS_SECRET_ACCESS_KEY` + +or STS grants: +```bash +$ aws-vault exec my-user -- bundle exec rails server +``` +> *See [aws-vault](https://github.com/99designs/aws-vault/blob/master/USAGE.md) docs for more info* + +or a metadata endpoint grant: +* Available in attached Task or EC2 instance. *See [AWS Docs](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-metadata-endpoint.html) for more info.* +* Through aws-vault: `aws-vault exec -s my-user` + +#### IAM Permissions Required + +Since this is meant to work out of the box as a complement to [chamber cli](https://github.com/segmentio/chamber), it needs similar IAM permissions. + +In this case, however, we can grant read-only to the namespace(s). +```json +{ + "Version": "2012-10-17", + "Statement": [ + { + "Sid": "", + "Effect": "Allow", + "Action": "ssm:DescribeParameters", + "Resource": "*" + }, + { + "Sid": "", + "Effect": "Allow", + "Action": [ + "ssm:GetParametersByPath", + "ssm:GetParameters", + "ssm:GetParameter", + "kms:Decrypt" + ], + "Resource": [ + "arn:aws:ssm:us-east-1:1234567890:parameter/my-chamber-service", + "arn:aws:kms:us-east-1:1234567890:key/258574a1-cfce-4530-9e3c-d4b07cd04115" + ] + } + ] +} +``` +> **Note:** `Resource` array MUST include the full ARN of the key id used for chamber cli +> *(Default alias is `parameter_store_key`)* + ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.