ECSクラスターのボリュームをKMSで暗号化する
概要
システム要件の都合上、ECSで作成するEC2インスタンスのボリュームの暗号化が必要になりました。
AWSマネジメントコンソールでは、ECSクラスターを作成時に暗号化できないため、ecs-cli
コマンドを利用してボリュームを暗号化します。
事前に暗号化済みAMIを作成するなど、一工夫必要になります。
手順
ecs-cliをインストール
インストール手順はこちらを参照してください。
- ecs-cliインストール(Macの場合。最後のコマンドでバージョンが表示されればOK)。
$ sudo curl -o /usr/local/bin/ecs-cli https://s3.amazonaws.com/amazon-ecs-cli/ecs-cli-darwin-amd64-latest
$ sudo chmod +x /usr/local/bin/ecs-cli
$ ecs-cli --version
- 初期設定(デフォルトのprofileとconfigを使う場合)
# AWS認証情報を登録
$ ecs-cli configure profile \
--access-key <AWSアクセスキー> \
--secret-key <AWSシークレットアクセスキー>
# ECSの設定を登録
$ ecs-cli configure \
--cluster <クラスター名> \
--default-launch-type EC2 \
--region ap-northeast-1
ボリューム暗号化済みAMIを作成
デフォルトのECS用AMIは暗号化されていないため、AMIをコピーします(コピー時にボリュームを暗号化)。
以前はパブリックなAMIはコピーできず、インスタンス作成→AMI作成→AMIコピー時に暗号化という手順を踏まなければいけなかったので、かなり便利になりました。
ECSクラスター構築
ecs-cli
コマンドでECSクラスターを構築します。
使用できるオプションはこちらを参照してください。
$ ecs-cli up \
--capability-iam \
--keypair <キーペア名> \
--size <インスタンス数> \
--instance-type <インスタンスタイプ> \
--image-id <暗号化済みAMIのID> \
--vpc <VPC ID> \
--subnets <サブネットID>,<サブネットID> \
--security-group <セキュリティグループID> \
# 例
$ ecs-cli up \
--capability-iam \
--keypair sample-key \
--size 1 \
--instance-type t2.micro \
--image-id ami-xxxxxxxx \
--vpc vpc-xxxxxxxxx \
--subnets subnet-xxxxxxxx,subnet-xxxxxxxx \
--security-group sg-xxxxxxxx \
確認
作成したインスタンスのボリュームを確認すると、暗号化されていることがわかります。
最後に
ボリュームの暗号化は普段あまり意識されないかもしれませんが、機密情報を扱うシステムではボリュームを全て暗号化すること
のような要件が出てくることがあるため、そんな時に使ってください。
また、ECSはマネジメントコンソールでの操作が限られているため、できる限りコード化しておくと安心だと思います。
Author And Source
この問題について(ECSクラスターのボリュームをKMSで暗号化する), 我々は、より多くの情報をここで見つけました https://qiita.com/kotarai/items/c71ebd583d04f292e14f著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .