

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 建立使用具有預設加密之 Amazon EBS 磁碟區的 AWS Cloud9 IDE
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption"></a>

*Janardhan Malyala 和 Dhrubajyoti Mukherjee，Amazon Web Services*

## 總結
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-summary"></a>

**注意**： AWS Cloud9 不再提供給新客戶。的現有客戶 AWS Cloud9 可以繼續正常使用服務。[進一步了解](https://aws.amazon.com/blogs/devops/how-to-migrate-from-aws-cloud9-to-aws-ide-toolkits-or-aws-cloudshell/)

您可以在 Amazon Web Services (AWS) 雲端上使用[預設加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html#encryption-by-default)，強制加密 Amazon Elastic Block Store (Amazon EBS) 磁碟區和快照副本。 

您可以建立使用預設加密之 EBS 磁碟區的 AWS Cloud9 整合開發環境 (IDE)。不過，AWS Cloud9 的 AWS Identity and Access Management (IAM) [服務連結角色](https://docs.aws.amazon.com/cloud9/latest/user-guide/using-service-linked-roles.html)需要存取這些 EBS 磁碟區的 AWS Key Management Service (AWS KMS) 金鑰。 AWS Cloud9 如果未提供存取權，AWS Cloud9 IDE 可能無法啟動，且偵錯可能很困難。 

此模式提供將 AWS Cloud9 的服務連結角色新增至 EBS 磁碟區所使用的 AWS KMS 金鑰的步驟。此模式描述的設定可協助您成功建立和啟動 IDE，該 IDE 預設使用具有加密功能的 EBS 磁碟區。

## 先決條件和限制
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-prereqs"></a>

**先決條件**
+ 作用中的 AWS 帳戶
+ EBS 磁碟區的預設加密已開啟。如需預設加密的詳細資訊，請參閱《[Amazon Elastic Compute Cloud (Amazon EC2) 文件》中的 Amazon EBS 加密](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSEncryption.html)。Amazon EC2
+ 用於加密 EBS 磁碟區的現有[客戶受管 KMS 金鑰](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk)。

**注意**  
您不需要為 AWS Cloud9 建立服務連結角色。當您建立 AWS Cloud9 開發環境時，AWS Cloud9 會為您建立服務連結角色。

## Architecture
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-architecture"></a>

![\[使用 AWS Cloud9 IDE 強制加密 EBS 磁碟區和快照。\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/images/pattern-img/dd98fbb4-0949-4299-b701-bc857e13049c/images/6b22b8d1-75d9-4f06-b5d6-5fff7397f22d.png)


**技術堆疊**
+ AWS Cloud9
+ IAM
+ AWS KMS

## 工具
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-tools"></a>
+ [AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/welcome.html) 是整合式開發環境 (IDE)，可協助您編寫、建置、執行、測試和偵錯軟體。它還可協助您將軟體發佈至 AWS 雲端。
+ [Amazon Elastic Block Store (Amazon EBS)](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/AmazonEBS.html) 提供區塊層級儲存磁碟區，可與 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體搭配使用。
+ [AWS Identity and Access Management (IAM)](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction.html) 可透過控制已驗證並獲授權使用的人員，協助您安全地管理對 AWS 資源的存取。
+ [AWS Key Management Service (AWS KMS)](https://docs.aws.amazon.com/kms/latest/developerguide/overview.html) 可協助您建立和控制密碼編譯金鑰，以協助保護您的資料。

## 史詩
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-epics"></a>

### 尋找預設加密金鑰值
<a name="find-the-default-encryption-key-value"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 記錄 EBS 磁碟區的預設加密金鑰值。 | 登入 AWS 管理主控台並開啟 Amazon EC2 主控台。選擇 **EC2 儀表板**，然後在**帳戶屬性**中選擇**資料保護和安全性**。在 **EBS 加密**區段中，複製並記錄**預設加密金鑰**中的值。 | 雲端架構師、DevOps 工程師 | 

### 提供 AWS KMS 金鑰的存取權
<a name="provide-access-to-the-aws-kms-key"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 提供 AWS Cloud9 存取 EBS 磁碟區的 KMS 金鑰。 | [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/zh_tw/prescriptive-guidance/latest/patterns/create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption.html)如需更新金鑰政策的詳細資訊，請參閱[如何變更金鑰政策](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html#key-policy-modifying-how-to) (AWS KMS 文件）。當您啟動第一個 IDE 時，會自動建立 AWS Cloud9 的服務連結角色。如需詳細資訊，請參閱 AWS Cloud9 文件中的[建立服務連結角色](https://docs.aws.amazon.com/cloud9/latest/user-guide/using-service-linked-roles.html#create-service-linked-role)。  | 雲端架構師、DevOps 工程師 | 

### 建立和啟動 IDE
<a name="create-and-launch-the-ide"></a>


| 任務 | Description | 所需的技能 | 
| --- | --- | --- | 
| 建立並啟動 AWS Cloud9 IDE。 | 開啟 AWS Cloud9 主控台，並依照 AWS Cloud9 文件中建立 [ EC2 環境](https://docs.aws.amazon.com/cloud9/latest/user-guide/create-environment-main.html)的步驟，根據您的需求選擇建立 AWS Cloud9********Configure IDE。  | 雲端架構師、DevOps 工程師 | 

## 相關資源
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-resources"></a>
+ [加密 AWS Cloud9 使用的 EBS 磁碟區](https://docs.aws.amazon.com/cloud9/latest/user-guide/move-environment.html#encrypting-volumes)
+ [為 AWS Cloud9 建立服務連結角色](https://docs.aws.amazon.com/cloud9/latest/user-guide/using-service-linked-roles.html#create-service-linked-role)
+ [在 AWS Cloud9 中建立 EC2 環境](https://docs.aws.amazon.com/cloud9/latest/user-guide/create-environment-main.html)

## 其他資訊
<a name="create-an-aws-cloud9-ide-that-uses-amazon-ebs-volumes-with-default-encryption-additional"></a>

**AWS KMS 金鑰政策更新**

使用您的 AWS 帳戶 ID 取代 `<aws_accountid>`。

```
{
            "Sid": "Allow use of the key",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<aws_accountid>:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9"
            },
            "Action": [
                "kms:Encrypt",
                "kms:Decrypt",
                "kms:ReEncrypt*",
                "kms:GenerateDataKey*",
                "kms:DescribeKey"
            ],
            "Resource": "*"
        },
        {
            "Sid": "Allow attachment of persistent resources",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::<aws_accountid>:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9"
            },
            "Action": [
                "kms:CreateGrant",
                "kms:ListGrants",
                "kms:RevokeGrant"
            ],
            "Resource": "*",
            "Condition": {
                "Bool": {
                    "kms:GrantIsForAWSResource": "true"
                }
            }
        }
```

**使用跨帳戶金鑰**

如果您想要使用跨帳戶 KMS 金鑰，您必須使用授權搭配 KMS 金鑰政策。這可讓跨帳戶存取 金鑰。在您用來建立 Cloud9 環境的相同帳戶中，在終端機中執行下列命令。

```
aws kms create-grant \
 --region <Region where Cloud9 environment is created> \
 --key-id <The cross-account KMS key ARN> \
 --grantee-principal arn:aws:iam::<The account where Cloud9 environment is created>:role/aws-service-role/cloud9.amazonaws.com/AWSServiceRoleForAWSCloud9 \
 --operations "Encrypt" "Decrypt" "ReEncryptFrom" "ReEncryptTo" "GenerateDataKey" "GenerateDataKeyWithoutPlaintext" "DescribeKey" "CreateGrant"
```

執行此命令後，您可以使用 EBS 加密搭配不同帳戶中的金鑰來建立 Cloud9 環境。