安全性 - AWS 实例计划程序

安全性

当您在 AWS 基础设施上构建系统时,AWS 和您如何共同分担安全责任。此责任共担模式能够减轻您的运营负担,因为 AWS 负责运行、管理和控制各种组件,包括主机操作系统、虚拟化层和服务运行所在设施的物理安全性。有关 AWS 安全性的更多信息,请访问 AWS 云安全性

AWS KMS

该解决方案创建一个 AWS 管理的客户托管式密钥,该密钥用于为 SNS 主题和 DynamoDB 表配置服务器端加密。

Amazon IAM

该解决方案的 Lambda 函数需要具备执行以下操作的权限:访问中心账户资源、获取 get/put Systems Manager 参数、访问 CloudWatch 日志组、进行 AWS KMS 密钥加密/解密以及向 SNS 发布消息。此外,AWS 实例计划程序还将在所有托管账户中创建计划角色,可通过这些账户启动/停止 EC2、RDS、自动扩缩资源与数据库实例、修改实例属性和更新这些资源的标签。解决方案会向作为解决方案模板的一部分创建的 Lambda 服务角色提供所有必要的权限。

部署时,AWS 实例计划程序将为其每个 Lambda 函数部署范围缩小的 IAM 角色,以及只能由已部署中心模板中的特定计划 Lambda 代入的计划程序角色。这些计划角色的名称将遵循模式 {namespace}-Scheduler-Role{namespace}-ASG-Scheduling-Role

有关为每个服务角色提供的权限的详细信息,请参阅 CloudFormation 模板

加密的 EC2 EBS 卷

当计划附加到由 AWS KMS 加密的 EBS 卷的 EC2 实例时,您必须向 AWS 实例计划程序授予使用关联的 AWS KMS 密钥的权限。这可让 Amazon EC2 在启动函数期间解密附加的 EBS 卷。必须向与使用此密钥的 EC2 实例所属账户中的计划角色授予此权限。

要授予将 AWS KMS 密钥用于 AWS 实例计划程序的权限,请将 AWS KMS 密钥的 ARN 添加到使用此密钥的 EC2 实例所属账户中的 AWS 实例计划程序堆栈(中心或分支):

适用于 EC2 的 KMS 密钥 ARN

image3

这将自动生成以下策略并将其添加到该账户的计划角色中:

{ "Version": "2012-10-17", "Statement": [ { "Condition": { "StringLike": { "kms:ViaService": "ec2.*.amazonaws.com" }, "Null": { "kms:EncryptionContextKeys": "false", "kms:GrantOperations": "false" }, "ForAllValues:StringEquals": { "kms:EncryptionContextKeys": [ "aws:ebs:id" ], "kms:GrantOperations": [ "Decrypt" ] }, "Bool": { "kms:GrantIsForAWSResource": "true" } }, "Action": "kms:CreateGrant", "Resource": [ "Your-KMS-ARNs-Here" ], "Effect": "Allow" } ] }