1. Cognito
2. AWS Single Sign-On
3. Directory Service
4. Certificate Manager
4.1. A service that simplifies provisioning, managing, and deploying public and private Secure Sockets Layer/Transport Layer Security (SSL/TLS) certificates for use with AWS services and your internal connected resources.
5. CloudHSM
5.1. A fully managed HSM service that integrates with your applications using industry-standard APIs, such as PKCS#11, Java Cryptography Extension (JCE), and Microsoft CryptoNG (CNG) libraries
6. Detective
7. Inspector
8. Artifact
9. GuardDuty
10. WAF & Shield
11. Amazon Macie
12. Security Hub
13. Detective
14. Resource Access Manager
15. Secrets Manager
16. Key Management Service
16.1. With the Master Key, you can generate Data Keys, which in turn are used for the encryption
16.2. Data Keys are used for encrypting data. A Data Key is in plain text, so needs to be secured
16.3. Disable, delete and manage the lifecycle of the keys
16.4. Master Keys can encrypt max 4KB of data
16.5. Master Keys can also be used for encryption of data such as passwords
16.6. Types of Keys: once created by AWS and keys created by the account owner.
16.6.1. Customer Master Keys (CMK)
16.6.1.1. CMK is a logical representation of a master key
16.6.1.2. Creation Steps
16.6.1.2.1. Create alias and description
16.6.1.2.2. Create a Tag
16.6.1.2.3. Define Key Administrative Permissions: Users who have Admin Privileges for the Key.
16.6.1.2.4. Define User Permissions
16.6.1.2.5. Preview Key Policy
16.6.1.3. Data keys are encryption keys that you can use to encrypt data, including large amounts of data and other data encryption keys
16.6.1.4. Key Material is the underlying algorithm for encryption and decryption. You can create your own Key Material and import and use it for a AWS CMK
16.6.2. AWS Managed CMK
16.6.2.1. AWS managed CMKs are CMKs in your account that are created, managed, and used on your behalf by an AWS service that is integrated with AWS KMS.
16.6.2.2. No actions can be done on these keys and are used internally by AWS Services.
16.6.3. AWS Owned CMK
16.6.3.1. AWS owned CMKs are not in your AWS account. They are part of a collection of CMKs that AWS owns and manages for use in multiple AWS accounts. AWS services can use AWS owned CMKs to protect your data.
16.7. Encrypting and Decrypting
16.7.1. AWS CLI (Command Line Interface) can be used
16.7.2. AWS Encryption SDK is a client-side encryption library that integrates with KMS to make it easier to implement encryption best practices in your applications
16.8. Key Policies
16.8.1. If a new feature is added to KMS, it is automatically added to the default Key Policy. For older keys this has to be done manually
16.8.2. Default policies are created, providing admin permissions to the root user
16.9. Audit and Logging
16.9.1. Cloudtrail logs can be used to check the usage of the keys. This is not available in all regions.
16.10. KMS & S3 Buckets
16.10.1. S3 Encryption Process
16.10.1.1. S3 request plaintext and encrypted Data Key from KMS
16.10.1.2. S3 encrypts te object with the plaintext data key and deletes the plaintext key
16.10.1.3. The encrypted Data Key is stored with the encrypted data
16.10.2. S3 Decryption Process
16.10.2.1. S3 sends encrypted Data Key to KMS
16.10.2.2. KMS send plaintext key from to S3 based on Customer Master Key
16.10.2.3. S3 decrypts the object with the plaintext Data Key, and deletes it asap
16.10.3. Encryption on bucket level does not encrypt the existing objects in that bucket
16.11. KMS & EBS
16.11.1. By default AWS uses CMK when encrypting EBS vokumes. You can also choose the Key for the encryption
16.11.2. Encryption process uses the encrypted Data Key from the chosen CMK received from the KMS and attach it as metadata to the EBS volume.
16.11.3. Decryption occurs when the EBS volume is attached to the EC2 instance. The encrypted Data Key is sent to KMS and a plaintext Data Key is received and stored in the hypervisor memory to encrypt disc I/O on the disc volume
16.11.4. When the Key is disabled, the current volume will still be able to be decrypted by the EC2 instanced. BUT if the volume is detached from the instance the decryption will not work anymore
16.12. Key Rotation
16.12.1. AWS rotates the backend key and keeps the initial Key ID. Key ID is a pointer to the CMK
16.12.2. When a key is deleted, a schedule for the deletion is created. AWS will delete it between 7 and 30 days. Deletion is irreversible
16.12.3. Disable the Key instead of deleting. You can always re-enable a key
16.13. Key Caching
16.13.1. Key caching can be used within the SDK to reduce costs
16.13.2. By requesting multiple Data Keys, you achieve a higher Security Level
16.14. DynamoDB Encryption at rest
16.14.1. Encryption can only be done when the table is created.
16.14.2. Encryption is also done for the indexes
16.14.3. Metadata from S3 objects is not encrypted. A solution is to store it in a DynamoDB table and encrypt.
16.15. General Notes
16.15.1. KMS is a region-wise service. Keys defined in one region cannot be used in another region
16.15.2. KMS uses FIPS 140-2 validated hardware security modules to generate and store your keys
16.15.3. KMS is integrated with AWS CloudTrail to provide a consolidated record of all key management activities and any attempt to use your keys