

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 安全性
<a name="security-1"></a>

当您在 AWS 基础设施上构建系统时，AWS 和您如何共同分担安全责任。此[责任共担模式](https://aws.amazon.com/compliance/shared-responsibility-model/)能够减轻您的运营负担，因为 AWS 负责运行、管理和控制各种组件，包括主机操作系统、虚拟化层和服务运行所在设施的物理安全性。有关 AWS 安全性的更多信息，请访问 [AWS 云安全性](https://aws.amazon.com/security/)。

## AWS KMS
<a name="aws-kms"></a>

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

## Amazon IAM
<a name="amazon-iam"></a>

该解决方案的 Lambda 函数需要访问中心账户资源和访问 get/put 系统管理器参数、访问CloudWatch 日志组、AWS KMS 密钥 encryption/decryption, and publish messages to SNS. In addition, Instance Scheduler will also create Scheduling Roles in all managed accounts that will provide access to start/stop EC2、RDS、Autoscaling 资源、数据库实例、修改实例属性以及更新这些资源的标签的权限。解决方案会向作为解决方案模板的一部分创建的 Lambda 服务角色提供所有必要的权限。

部署时，实例调度器将为其每个 Lambda 函数部署限定范围的 IAM 角色以及只能由已部署的中心模板中的特定调度 Lambda 担任的调度器角色。这些计划角色的名称将遵循模式 `{namespace}-Scheduler-Role` 和 `{namespace}-ASG-Scheduling-Role`。

有关为每个服务角色提供的权限的详细信息，请参阅[CloudFormation 模板](aws-cloudformation-templates.md)。

## 加密的 EC2 EBS 卷
<a name="encrypted-ec2-ebs-volumes"></a>

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

要授予在实例计划程序中使用 AWS KMS 密钥的权限，请使用密钥将 AWS KMS 密钥的 ARN 添加到与 EC2 实例相同的账户中的实例调度器堆栈（中心或分支）：

 **适用于 EC2 的 KMS 密钥 ARN** 

![image3](http://docs.aws.amazon.com/zh_cn/solutions/latest/instance-scheduler-on-aws/images/image3.png)


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

```
 {

   "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"
      }
   ]
 }
```

## EC2 License Manager
<a name="ec2-license-manager"></a>

计划在 AWS License Manager 中管理的 EC2 实例时，您必须向实例计划程序授予使用相关许可证配置的权限。这使该解决方案能够正确启动和停止实例，同时保持许可证合规性。必须使用 License Manager 向与 EC2 实例相同的账户中的计划角色授予此权限。

要授予在实例调度器中使用 AWS License Manager 的权限，请使用许可证管理器将许可证管理器配置 ARN 添加到与 EC2 实例相同的账户中的实例计划程序堆栈（中心或分支）中：

 **适用于 EC2 的 License Manager 配置 ARN** 

![许可证管理器 cfn 参数](http://docs.aws.amazon.com/zh_cn/solutions/latest/instance-scheduler-on-aws/images/license-manager-cfn-param.png)


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

```
 {

   "Version": "2012-10-17",		 	 	 
   "Statement": [
      {
        "Action": "ec2:StartInstances",
        "Resource": [
             "Your-License-Manager-ARNs-Here"
        ],
        "Effect": "Allow"
      }
   ]
 }
```

有关许可证管理器权限的更多信息，请参阅 AWS License M [anager *用户指南中的 AWS License Manager* 身份和访问管理](https://docs.aws.amazon.com/license-manager/latest/userguide/license-manager-iam.html)。

```
```