デフォルトの暗号化で Amazon EBS ボリュームを使用する AWS Cloud9 IDE を作成 - AWS 規範ガイダンス

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

デフォルトの暗号化で Amazon EBS ボリュームを使用する AWS Cloud9 IDE を作成

作成者: Janardhan Malyala (AWS) と Dhrubaj YOti Mukherjee (AWS)

環境:本稼働

テクノロジー:オペレーション

ワークロード:その他すべてのワークロード

AWS サービス:AWS Cloud9、AWS KMS

[概要]

デフォルトで暗号化」を使用して、Amazon Elastic Block Store (Amazon EBS) ボリュームとAmazon Web Services (AWS) クラウド上のスナップショットコピーを強制的に暗号化できます。 

デフォルトで暗号化された EBS ボリュームを使用する AWS Cloud9 統合開発環境 (IDE) を作成できます。ただし、AWS Cloud9 の AWS Identity and Access Management (IAM)「サービスにリンクされたロールには」、これらの EBS ボリュームの AWS Key Management Service (AWS KMS) キーにアクセスする必要があります。アクセスが提供されない場合、AWS Cloud9 IDE の起動に失敗し、デバッグが困難になる場合があります。 

このパターンでは、EBS ボリュームで使用される AWS KMS キーにAWS Cloud9のサービスにリンクされたロールを追加する手順を提供します このパターンでデフォルトで暗号化された EBS ボリュームを使用する IDE を正常に作成し、起動するための設定を説明します。

前提条件と制限

前提条件

  • アクティブな AWS アカウント。

  • EBS ボリュームではデフォルトの暗号化が有効になっています。デフォルトの暗号化の詳細については、「Amazon Elastic Compute Cloud (Amazon EC2) のドキュメント」の「Amazon EBS 暗号化」を参照してください。

  • EBS ボリュームを暗号化するための既存「カスタマーマネージド KMS キー」。

注:AWS Cloud9 用にサービスにリンクされたロールを手動で作成する必要はありません。AWS Cloud9 開発環境を作成すると、AWS Cloud9 によってサービスにリンクされたロールが作成されます。

アーキテクチャ

テクノロジースタック

  • AWS Cloud9

  • IAM

  • AWS KMS

ツール

  • AWS Cloud9」は、ソフトウェアのコーディング、ビルド、実行、テスト、およびデバッグを支援する統合開発環境 (IDE) です。また、ソフトウェアを AWS クラウドにリリースするのにも役立ちます。

  • Amazon Elastic Block Store (Amazon EBS) は、 Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで使用するブロックレベルストレージのボリュームを提供します。

  • AWS Identity and Access Management (IAM)」は、AWS リソースへのアクセスを安全に管理し、誰が認証され、使用する権限があるかを制御するのに役立ちます。

  • AWS Key Management Service (AWS KMS) は、データの保護に役立つ暗号キーを作成および管理する上で役立ちます。

エピック

タスク説明必要なスキル

EBS ボリュームのデフォルトの暗号化キー値を記録します。

AWS マネジメントコンソールにサインインし、Amazon SNS コンソールを開きます。EC2 ダッシュボード を選択し、アカウント属性 データ保護とセキュリティを選択します。EBS 暗号化セクションで、値をデフォルトの暗号化キー にコピーして記録します。

クラウドアーキテクト、 DevOps エンジニア
タスク説明必要なスキル

AWS Cloud9 に EBS ボリュームの KMS キーへのアクセスを提供します。

  1. AWS KMS コンソールを開き、カスタマーマネージドキーを選択します。  Amazon EBS 暗号化に使用する AWS KMS キーを選択して、キーを表示を選択します。

  2. キーポリシータブで、キーポリシーがテキスト形式で表示されることを確認します。テキストフォームが表示されない場合は、ポリシービューに切り替えを選択します。

  3. [編集] を選択します。追加情報セクションのコードをポリシーに追加し、[変更を保存]を選択します。ポリシーの変更により、AWS Cloud9 AWSServiceRoleForAWSCloud9 のサービスにリンクされたロールがキーにアクセスできるようになります。

キーポリシー更新の詳細については、「キーポリシーを変更する方法」(AWS KMS のドキュメント)を参照してください。

重要:AWS Cloud9 のサービスにリンクされたロールは、最初の IDE を起動したときに自動的に作成されます。詳細については、「AWS Cloud9 のドキュメント」の「サービスにリンクされたロールの作成」を参照してください。 

クラウドアーキテクト、 DevOps エンジニア
タスク説明必要なスキル

AWS Cloud9 IDE を作成し、起動します。

AWS Cloud9 コンソールを開き、環境を作成を選択します。「AWS Cloud9 のドキュメント」の「EC2 環境の作成」手順に従い、必要に応じて IDE を設定します。 

クラウドアーキテクト、 DevOps エンジニア

関連リソース

追加情報

AWS KMS キーポリシーの更新

<aws_accountid> は自分の AWS アカウント ID に置き換えます。

{ "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 環境を作成できます。