デフォルトでAWS SSMを有効にする方法(Default Host Management Configuration)

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

こんにちは!イーゴリです。

今日はとても便利な機能をご紹介したいと思います。

背景

以前の記事では、プライベートな環境でSSMを使える方法を紹介しました。

しかし、上記の方法だと、下記のデメリットがあります。

  • すべての対象EC2インスタンスに対して、IAMロールを作る必要があります

結構大変ですよね。

今回の方法はSystems Manager の DHMC (Default Host Management Configuration)を使うことでIAMロール作成/EC2へのアタッチの手間がなくなります。さらに一回だけ設定すればよいです。

blog.serverworks.co.jp

イメージ図

EC2前提条件

  • IMDSv2が必要(メータデータオプションの設定が「V1及びV2 (トークンはオプション)」であってもIMDSv2が利用できるため、問題ない)
  • SSM Agent (3.2.582.0バージョン以降)が必要

なお、Default Host Management Configurationの有効化によって、自動的に下記の事象が起きますので、ご承知おきください。

  • SSM Agent が最新の状態に保たれる
  • Session Manager、Patch Manager、Inventoryが有効になる

有効にする方法

Systems Manager > フリートマネージャー > アカウント管理 > 「デフォルトのホスト管理設定」を設定するをクリックする。

「デフォルトのホスト管理設定」画面で「デフォルトのホスト管理設定を有効にする」をクリックする。

 

「IAM ロール」欄でロールの一覧から「AWSSystemsManagerDefaultEC2InstanceManagementRole を作成(推奨)」を選択します。

AWSSystemsManagerDefaultEC2InstanceManagementRoleの内容:

  • AmazonSSMManagedEC2InstanceDefaultPolicy
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ssm:DescribeAssociation",
                "ssm:GetDeployablePatchSnapshotForInstance",
                "ssm:GetDocument",
                "ssm:DescribeDocument",
                "ssm:GetManifest",
                "ssm:ListAssociations",
                "ssm:ListInstanceAssociations",
                "ssm:PutInventory",
                "ssm:PutComplianceItems",
                "ssm:PutConfigurePackageResult",
                "ssm:UpdateAssociationStatus",
                "ssm:UpdateInstanceAssociationStatus",
                "ssm:UpdateInstanceInformation"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ssmmessages:CreateControlChannel",
                "ssmmessages:CreateDataChannel",
                "ssmmessages:OpenControlChannel",
                "ssmmessages:OpenDataChannel"
            ],
            "Resource": "*"
        },
        {
            "Effect": "Allow",
            "Action": [
                "ec2messages:AcknowledgeMessage",
                "ec2messages:DeleteMessage",
                "ec2messages:FailMessage",
                "ec2messages:GetEndpoint",
                "ec2messages:GetMessages",
                "ec2messages:SendReply"
            ],
            "Resource": "*"
        }
    ]
}

「設定」をクリックします。

完了しましたら、「フリートマネージャー」画面で対象EC2が表示されるようになります。

以上、御一読ありがとうございました。