EC2 の Settings で EBS 暗号化 や Unlimited モードのデフォルト値を変更する

記事タイトルとURLをコピーする

SRE部 佐竹です。
今回は、EC2 のダッシュボードにある「Settings」の機能について解説します。

はじめに

実は EC2 のマネジメントコンソールには「画面右上」に「設定」を行う機能が実装されています。

上画像の通り、右上に設定を行えるリンクがあります。メニューは以下の通りです。

  1. EBS 暗号化
  2. ゾーン
  3. デフォルトのクレジット仕様
  4. コンソールの実験

今回のブログでは、これらの設定を1つずつ見ていきます。

EBS 暗号化

EBS の暗号化は「常に新しい EBS ボリュームを暗号化」と記載されている通り、EC2 Instance の Launch 時及び EBS Volume の作成時にデフォルトで KMS による暗号化を強制するものです。

「管理」ボタンを押下して設定を変更してみます。

「有効化」にチェックを入れた後、暗号化に利用するデフォルトの KMS の鍵を選択します。今回は AWS マネージドの鍵 (aws/ebs) を設定しました。

元に戻したい場合は、再度「管理」から修正して無効化できます。

動作確認1

EC2 Instance を Launch してみます。

ステップ 4 の EBS の設定画面で右端にある「暗号化」を確認すると、KMS の鍵がデフォルトで入力されることが確認できました。なお鍵は変更が可能です。

KMS の鍵指定を削除して値を空にすると「デフォルトで暗号化が有効になっているため、ボリューム (/dev/xvda) は暗号化する必要があります。」と注意書きが表示され、暗号化が必須となっていることが確認できます。

動作確認2

この制御は EBS Volume を単体で作成する場合でも同様となっており、暗号化を無効とすることはできません。

上画像の通り、EBS のコンソールでは EC2 の Launch 画面とは異なり KMS を空欄にすることはできるのですが、空欄の状態で EBS Volume を作成したとしても…

作成された EBS を確認すると、デフォルトの KMS の鍵で暗号化されていることがわかります。

このように、本設定は「常に新しい EBS ボリュームの暗号化」を強制する動きになります。

なお、この暗号化は透過的(AWS 側で強制的)に行われます。これはつまり、CloudFormation の yaml 等を改変しなくても、これまで通りスタックを実行するときに本デフォルト暗号化は有効に機能します。

2024年6月 追記

「EBS 暗号化」は2024年6月現在「データ保護とセキュリティ」という名称になり、設定できる項目もかなり増えました。

blog.serverworks.co.jp

上記ブログで最新の情報を解説していますため、合わせて是非ご覧ください。

ゾーン

ゾーンは、東京リージョンでは特に機能はないのですが、アメリカ等のリージョンでは

  • Local Zones
  • Wavelength Zones

のリクエストを行うことが可能となっています。

デフォルトのクレジット仕様

「デフォルトのクレジット仕様」では、バーストクレジットを持つ EC2 Instance である「T系」ファミリーの「Unlimited モードのデフォルト値」を設定できます。初期設定は以下の通りです。

  1. T2 インスタンス:スタンダード
  2. T3 インスタンス:無制限 (Unlimited)
  3. T3a インスタンス:無制限 (Unlimited)
  4. T4g インスタンス:無制限 (Unlimited)

Unlimited モードについての概念については以下の公式ドキュメントをご参照ください。

docs.aws.amazon.com

Unlimited モードを簡単に説明すると、バーストクレジットが使い切られた場合でも、追加コストを支払うことでバーストが継続利用可能となるオプションです。

マネジメントコンソールで EC2 Instance を構築されている方は、t3 から「Credit specification」つまりバーストクレジットの設定がデフォルトで「Unlimited」にチェックが入るようになったことをお困りの方もいらっしゃるかと存じます。

それは Unlimited を有効化する場合、先に記載した通り「追加コストが発生する可能性」があるためです。追加コストを発生するのを避けるため、コスト削減目的で構築の度にこのチェックを外している方は少しの手間に煩わされているでしょう。

今回、全てスタンダードに変更してみます。

変更が完了しました。

動作確認:設定変更前

T3 インスタンス:無制限 (Unlimited) のままの状態では、EC2 Instance の構築画面では以下の通りとなります。

t3.micro を選択して次に移動すると…

「Credit specification」の「Unlimited」にチェックがされていることがわかります。

動作確認:設定変更後

設定変更を行った後は、上画像の通り T3 インスタンスでも「Unlimited」のチェックが外れた状態がデフォルトとなることが確認できました。

コンソールの実験

この設定は「変更の必要がある方」はまずいらっしゃらないかと思いますが参考までご紹介します。

管理ボタンを押下して設定を変更してみます。初期設定は以下の通りです。

  1. 大規模データのスナップショット画面を最適化する:無効
  2. テーブル行を圧縮: 有効

大規模データのスナップショット画面を最適化する

本機能は「スナップショットが膨大に存在する場合に利用が想定される機能」で、有効化すると一覧画面の速度を高速化するために「項目のソート機能」と「フィルタリングオプションの一部」が制限されます。

これを利用すれば高速化は可能ですが一部の機能が利用できなくなるため、基本的には無効のままで良いでしょう。

テーブル行を圧縮

これは、EC2 Instance の一覧画面のテーブル表示の一行ごとの幅をデフォルトで「細く」表示するものです。

上画像は有効化されている状態です。よく見ると、2行目の背景がグレーになっているのもわかります。

これがテーブル行を圧縮しない場合の表示です。1行ごとの幅が広がっており、背景がグレーになる機能も削除されています。

これを無効にすると視認性が悪化すると思われますので、基本的には有効のままで良いでしょう。

まとめ

今回は EC2 のダッシュボードにある「Settings」の4つの設定について解説しました。

特に「EBS 暗号化」と「デフォルトのクレジット仕様」の2つの項目は運用において重要な項目になると考えられますので、一度見直しをされてはいかがでしょうか?

ちなみにこの設定について記載をしようと考えるに至った経緯をご紹介しますと、「AWS Security Hub」の EC2 に関する項目を読み込んでいたためです。

docs.aws.amazon.com

このドキュメントでは Security Hub における「基本的なセキュリティのベストプラクティス」がまとまっています。この中に [EC2.7] EBS default encryption should be enabled という項目があり、Config では ec2-ebs-encryption-by-default でチェックされます。

この設定を確認している中で「デフォルトのクレジット仕様」も設定変更が可能なことがわかりましたので、合わせてご紹介するに至りました。

本ブログが、セキュリティ面とコスト面の両面で役に立てば幸いです。

ではまたお会いしましょう。

佐竹 陽一 (Yoichi Satake) エンジニアブログの記事一覧はコチラ

マネージドサービス部所属。AWS資格全冠。2010年1月からAWSを利用してきています。2021-2022 AWS Ambassadors/2023-2024 Japan AWS Top Engineers/2020-2024 All Certifications Engineers。AWSのコスト削減、最適化を得意としています。