Fleet ManagerをKMS暗号化を有効化して使う

2021.01.04

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Systems Managerの機能であるFleet Managerを使うと、EC2上のファイルシステムの情報をみたり、パフォーマンスの状態を確認できます。一部の機能はEC2とユーザー間をKMSによる暗号化をしないと使えません。暗号化を行い、ファイルのプレビューとパフォーマンスカウンターを使ってみました。

EC2を作成し、ファイルシステムをプレビューする

パブリックサブネットにAmazon Linux 2を起動し、IAMロールを付与します。IAMロールにはAmazonSSMManagedInstanceCoreポリシーを付与します。このポリシーは、AWS Systems Managerサービスコア機能を使うために必要です。

Systems Managerコンソールのフリートマネージャーを選ぶと、作成したEC2が表示されます。

ファイルシステムを選ぶと、EC2のファイルシステムを確認できます。

ファイルの内容を表示することもできます。例えば、/var/log/messagesを選びアクション>テキストとしてプレビューできますが、特に設定をしていない状況では、エラーが発生しプレビューできません。セッション設定でKMS暗号を有効化します。

セッション設定でKMS暗号を有効化する

セッションマネージャー>設定を見ると、KMS暗号が無効になっています。

今回はKMSを作成しました。キーのタイプは対称。キーマテリアルオリジンはKMS。キー管理者とキーの使用アクセスはなしとしました。

作成したカスタマー管理型のキーのキーポリシーを見ると、「"AWS": "arn:aws:iam:: AccountID:root"」に権限があります。このAWSアカウント内のIAMユーザーとIAMロールは、IAMポリシーで許可されている場合にキーを使えることになります。

KMS暗号を有効にしたら、もう一度テキストとしてプレビューを試してみると、「エラー - フリートマネージャーはセッションを開始できません。」というエラーが発生します。EC2のIAMロールにキーを使う権限がないためです。

キーを利用するためのIAMポリシーを作成する

以下をKMS-Decrypt-policyポリシーとして作成し、EC2に割り当てたIAMロールに追加しました。ResourceにはキーのARNを指定します。

{
    "Version": "2012-10-17",
    "Statement": {
        "Effect": "Allow",
        "Action": [
            "kms:Decrypt"
        ],
        "Resource": [
            "arn:aws:kms:region:AccountID:key/1234567a-1234-1234-b123-ae12345a1b23"
        ]
    }
}

messagesをプレビューすると表示されました。テールファイルを有効にすると、リアルタイムに閲覧できます。

パフォーマンスカウンターもKMS暗号化の設定を行うと、閲覧できるようになります。過去60秒間のCPU 使用率、ディスクの入出力、ネットワークトラフィック、メモリ使用量を確認できます。

おわりに

Fleet ManagerをKMS暗号化を有効化して使ってみました。なにかあったときにAWSコンソールからファイルをプレビューしたり、パフォーマンスカウンターを確認できると便利かと思います。KMSのキー作成やポリシー設定は簡単にできるので、試してみていただければと思います。

検証環境

  • Amazon Linux 2 AMI (HVM), SSD Volume Type - ami-0be2609ba883822ec

参考