Overview
Amazon Key Management Service (KMS) gives you centralized control over the encryption keys used to protect your data. Master keys are created as resources in your own account and are used to control access to data encryption keys that encrypt and decrypt your data. You can create new master keys, and easily control who can use or manage them. Amazon KMS is integrated with other Amazon Web Services services making it easy to encrypt data you store in those services and control access to the keys that can decrypt it.
You can manage your master keys from the Amazon Web Services Management Console or by using the Amazon SDK or Amazon Command Line Interface (CLI). Amazon KMS is integrated with Amazon CloudTrail, which provides you the ability to audit who used which keys, on which resources, and when. Amazon KMS also enables developers to easily add encryption functionality to their application code either directly through encrypt and decrypt APIs or through its integration with the Amazon Web Services Encryption SDK.
Government-approved Hardware Protected Keys
Amazon KMS is designed so that no one, including the service operators, can retrieve plaintext master keys from the service. The service uses government-approved hardware security modules (HSMs) to protect the confidentiality and integrity of your keys. Your KMS master keys are never transmitted outside of the Amazon Web Services region in which they were created and can only be used within that region.
Durability
To help ensure that your keys are never lost and that your data is always retrievable, KMS stores multiple copies of encrypted versions of your keys in systems that are designed for 99.999999999% durability.
High Availability
Amazon KMS is designed to be a highly available service by using a redundant architecture spanning multiple availability zones in each region. As most Amazon Web Services services rely on Amazon KMS for their ability to encrypt and decrypt customer data, KMS is architected to provide the necessary level of availability to support the rest of Amazon Web Services and is backed by the Amazon KMS Service Level Agreement.
On-demand Scalability
Start with a single master key and add more as you need them. With Amazon KMS you can create and manage as many master keys as you need, and you can request an unlimited number of data keys for use in your local applications. We support high request rates at low latency to satisfy your workloads within and outside Amazon Web Services.
Automatic Key Rotation
You can choose to have Amazon KMS automatically rotate your master keys once per year without the need to re-encrypt data that was already encrypted. After rotating keys, KMS automatically saves older versions of your key material so that you can decrypt previously encrypted data.
Amazon Service Integration
The following Amazon services are integrated with Amazon KMS. These services use Amazon KMS customer master keys (CMKs) in your account to protect the data that the service receives, stores, or manages for you. Each service lets you choose a CMK that you create and manage, or a CMK that the service creates and manages on your behalf.
Amazon Athena | Amazon Neptune | Amazon CloudTrail |
Amazon Aurora | Amazon Redshift | Amazon CodeBuild |
Amazon DynamoDB | Amazon Relational Database Service (RDS) | Amazon CodeCommit |
Amazon DynamoDB Accelerator (DAX) | Amazon S3 | Amazon Database Migration Service |
Amazon EBS | Amazon SageMaker | Amazon Glue |
Amazon EC2 Image Builder | Amazon Simple Notification Service (SNS) | Amazon Lambda |
Amazon EFS | Amazon Simple Queue Service (SQS) | Amazon Secrets Manager |
Amazon ElastiCache | Amazon Transcribe | Amazon Storage Gateway |
Amazon OpenSearch | Amazon Workspaces | Amazon Systems Manager |
Amazon Elastic Kubernetes Service (EKS) | Amazon Backup | Amazon X-Ray |
Amazon EMR | Amazon Certificate Manager | Amazon Kinesis Data Streams |
Amazon Managed Streaming for Kafka (MSK) | Amazon Cloud9 | Amazon Kinesis Data Firehose |
Amazon Kinesis Data Analytics |
Comprehensive Auditing
If you have Amazon CloudTrail enabled for your Amazon Web Services account, each request you make to Amazon KMS is recorded in a log file that is delivered to the Amazon S3 bucket that you specified when you enabled Amazon CloudTrail. The information recorded includes details of the user, time, date, API action and, when relevant, the key used.
Asymmetric Keys
Amazon KMS provides you the capability to create and use asymmetric CMKs and data key pairs. You can designate a CMK for use as a signing key pair or an encryption key pair. Key pair generation and asymmetric cryptographic operations using these CMKs are performed inside HSMs. You can request the public portion of the asymmetric CMK for use in your local applications, while the private portion never leaves the service.
You can also request the service to generate an asymmetric data key pair. This operation returns a plaintext copy of the public key and private key as well as a copy of the private key encrypted under a symmetric CMK that you specify. You can use the plaintext public or private key in your local application and store the encrypted copy of the private key for future use.
Get started building with Amazon Key Management Service in the Amazon Web Services Console.