management w/ aws application secretsecret... · secret tips 1. diversity of secrets per...

24
Application Secret Management w/ AWS By Emmanuel Apau

Upload: others

Post on 06-Oct-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Application Secret Management w/ AWS

By Emmanuel Apau

Page 2: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

@technogrouch

https://www.bonfire.com/black-code-collective/

Page 3: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Why do i care about secret management?

Page 4: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Insert Name Here

Page 5: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret management - Use cases● Infrastructure Engineering

○ SSH keys, SSL certificates, and configuration (e.g kubeconfig)

● Application Engineering○ API keys○ Database credentials

● Single usage○ https://onetimesecret.com/

● External service integration○ E.g. Kubernetes secrets syncing

Page 6: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets
Page 7: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Sooo… many… options

Key Vault

Page 8: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Parameter Store Demo

Page 9: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Parameter Store

● Ability to reuse iam policies & roles for access management● Change management auditing via with AWS CloudTrail.

● Managed service == No maintenance just configuration● Encrypted at rest with KMS

Page 10: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Parameter Store

Page 11: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets
Page 12: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Standard vs Advanced

# Allowed Max size # History Values Max throughput - transactions per second (TPS)

Standard 10,000 4 KB 100 40 API TPS ● Shared API limit:

○ GetParameter, GetParameters, GetParametersByPath

Advanced 100,000 8 KB 100 100 API TPS - GetParametersByPath1000 API TPS

● Shared API limit:○ GetParameter and GetParameters

Page 13: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Standard vs Advanced

# Allowed Max size # History Values Max throughput - transactions per second (TPS)

Standard 10,000 4 KB 100 40 API TPS ● Shared API limit:

○ GetParameter, GetParameters, GetParametersByPath

Advanced 100,000 8 KB 100 100 API TPS - GetParametersByPath1000 API TPS

● Shared API limit:○ GetParameter and GetParameters

Page 14: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Use Case Versioning/Auditing Price

SSM Parameter Store

1. API Keys2. DB

credentials3. Misc

Key/Pair values

VersioningHistoryCloudTrail Auditing

https://aws.amazon.com/systems-manager/pricing/Standard

● Free Storage● $0.05 per 10,000 Parameter Store API

interactionsAdvanced

● $0.05 per secret● $0.05 per 10,000 Parameter Store API

interactions

Secret Manager Password Rotations

(e.g. Databases)

CloudTrail Auditing $0.40 per secret per month$0.05 per 10,000 API calls

Parameter Store VS Secret Manager

Page 15: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Lets Math it Out

Assume you have 5,000 parameters, of which 500 are advanced parameters and interact with each parameter 24 times per day, equating to 3,600,000 interactions per 30-day month.

Assume you have enabled higher throughput, so your monthly bill will be the sum of the cost of the advanced parameters storage and the API interactions, as follows:

Cost of 500 advanced parameters = 500 * $0.05 per advanced parameter = $25

Cost of 3.6M API interactions = 3.6M * $0.05 per 10,000 interactions = (3.6m/10,000) * $0.05 = $18

Total monthly cost = $25 + $18 = $43

Page 16: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret Integration

Programmatically in the application using the AWS SDKa. Subject to rate limiting via API at scale

var params = { Name: 'STRING_VALUE', /* required */ WithDecryption: true || false};ssm.getParameter(params, function(err, data) { if (err) console.log(err, err.stack); // an error occurred else console.log(data); // successful response

});

Page 17: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret Integration

On EC2 host start-up, via user-data to store secrets as Environment Variables via aws cli

export DB_CONNECTION =$(aws --region=us-east-2 ssm get-parameter --name "db_connection" --query 'Value')

Page 18: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret Integration

On container service registration. Secrets can be merged into the definition, and registered as environment variables e.g. ECS Task Definitions

Page 19: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret Integration

K8s Service definition

Page 20: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Secret Tips

1. Diversity of secrets per environments

2. Fine tuned decrypt access roles for admins, developers, pms

3. Share secrets via secure channels, e.g lastpass NOT slack or pastebin

4. Use Temporary credentials where possible.a. E.g token based RDS authentication

5. Make sure everyone understands the secret management process

Page 21: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Enforcer-Reloaded CLI

Features

● CLI tool to create/list/update aws parameter store

secrets

● Allows chunking of large secrets greater than 4kb○ Breaks large secrets into 4kb chunks

● List functionality to easily audit secrets○ Versions○ Change dates○ Users modified

● Kubernetes synchronization helper function

Future Wants:

● Handle Advanced secrets

https://github.com/kave/enforcer-reloaded

Page 22: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

Enforcer-Reloaded CLI Demo

Page 23: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets
Page 24: Management w/ AWS Application SecretSecret... · Secret Tips 1. Diversity of secrets per environments 2. Fine tuned decrypt access roles for admins, developers, pms 3. Share secrets

We’re Hiring!

https://jobs.lever.co/socialtables/