AWS Key Management Service
您可以通过 AWS Management Console 或者使用 AWS SDK 或 AWSAWS CLI 轻松创建、导入和轮换密钥,还可以定义使用策略并审计使用情况。
AWS KMS 中的 CMK,无论是由您导入还是由 KMS 代表您创建的,都以加密格式存储在高度持久的存储中,以帮助确保在需要时可以使用它们。您可以选择让 KMS 每年自动轮换一次在 KMS 中创建的 CMK,而无需重新加密已使用主密钥加密的数据。您不需要跟踪旧版本的 CMK,因为在需要自动解密以前加密的数据时,KMS 可以提供这些密钥。
对于 AWS KMS 中的任何 CMK,您可以通过许多访问控制(包括授予、密钥策略或 IAM 策略中的密钥策略条件)来控制谁有权访问这些密钥以及它们可用于哪些服务。您还可以从自己的密钥管理基础设施导入密钥,并在 KMS 中使用这些密钥。
例如,以下策略使用 kms:ViaService
条件,仅当请求来自代表特定用户(ExampleUser
)的特定区域(us-west-2)中的 Amazon EC2 或 Amazon RDS 时,才允许将客户托管的 CMK 用于指定的操作。
{
“Version”: “2012-10-17”,
“Statement”: [
{
“Effect”: “Allow”,
“Principal”: {
“AWS”: “arn:aws:iam::111122223333:user/ExampleUser”
}
“Action”: [
“kms:Encrypt*”,
“kms:Decrypt”,
”kms:ReEncrypt*”,
“kms:GenerateDataKey*”,
“kms:CreateGrant”,
“kms:ListGrants”,
“kms:DescribeKey”
],
“Resource”: “*”,
“Condition”: {
“ForAnyValue:StringEquals”: {
“kms:ViaService”: [
“ec2.us-west-2.amazonaws.com”,
“rds.us-west-2.amazonaws.com”
]
}
}
}