VPC単位でAmazon CloudWatchへlogを保管する

cloudwatch

VPC単位でVPCフローログをCloudWatch Logsへ保管処理を実施しましたので、その備忘録となります。

CloudWatch Logsとは
CloudWatch LogsとはAWSのログ監視サービスです。
– インスタンスやサービスのログを蓄積
– ログのフィルタリング
– ログのアラート化
などの機能があります。

以下のような構成図でパブリックサブネットとプライベートサブネットにEC2を立てて、pingを飛ばしてログを確認してみたいと思います。

Amazon CloudWatchへのロールを作成

CloudWatchサービスを使用するためにロールを作成します。

ロールとは
ロールとはサービスやプログラムなどに与えるIAMロールです。

AWSマネジメントコンソールからIAMで検索します

左ペインのロールを選択し、ロールを作成を押下します

信頼されたエンティティを選択画面にて

信頼されたエンティティタイプはAWSサービス

ユースケースはEC2を選択し次へを押下します

ポリシーの作成は後ほど作成するので、ここもそのまま次へ

ロール名を入力し、ロールを作成する

空のロールが出来上がります。

ポリシーを作成し、アタッチ

作成したロールにポリシーを作成し、ロールに対してポリシーをアタッチします。

許可タブからインラインポリシーを作成を選択します。

ポリシーの作成ではJSONタブを選択し、以下のリンクからポリシーを貼り付けます。

参考 CloudWatch Logs へのフローログ発行のための IAM ロールAWS公式サイト
ポリシーとは
ポリシーとは、
– AWSのどのサービスの
– どのリソースに対して
– どんな操作を
– 許可する/許可しない
の権限をIMAユーザやIAMロールに対して付与すること
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents",
        "logs:DescribeLogGroups",
        "logs:DescribeLogStreams"
      ],
      "Resource": "*"
    }
  ]
}  

こちらのポリシーはCloudWatch Logsへ

ロググループを作成し、ログストリームを作成し、ログイベントを送り、ログを記載する。というアクションを許可するJSONの情報です。

ポリシーに名前を付けて作成します。

ポリシーが作成されました。

信頼関係のタブから信頼されたエンティティを編集します。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "ec2.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}

どのサービスに対してポリシーを許可するか、の設定になるので、今回はCloudWatch Logsへvpc-flow-logsを発行するため、”Service”: “ec2.amazonaws.com”の部分を”Service”: “vpc-flow-logs.amazonaws.com”に書き換えます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Service": "vpc-flow-logs.amazonaws.com"
      },
      "Action": "sts:AssumeRole"
    }
  ]
} 

ポリシーを更新します。

ここまででロールの作成→ポリシーの作成ができました。

CloudWatchロググループの作成

ロググループとは
CloudWatch Logsにはロググループとログストリームという概念が存在する。
AWS公式ドキュメントによると、
ロググループは、保持、モニタリング、アクセス制御について同じ設定を共有するログストリーミングのグループです。ロググループを定義して、各グループに入れるストリームを指定することができます。1 つのロググループに属することができるログストリーミングの数に制限はありません。
という説明です。

簡潔に説明すると、ログストリームはログが蓄積され、それらを集約したものをロググループ、となります。

参考 ロググループとログストリームAWS公式サイト

ググループを作成します

ロググループ名とログの保持期間の設定を選択します

対象のVPCにフローログを作成します。

フローログの設定をし、フローログを作成します。

フローログ設定
フローログ設定の内容は次の通りです。
– フィルタ: 通信が成功した場合、通信が失敗した場合、失敗も成功もすべてかを選択する項目
– 最大集約間隔: ログが発行される間隔
– 送信先: CloudWatch Logsに送信するか、S3に送信するかを選択

VPCに作成してフローログの送信先名をクリックしてCloudWatchのロググループを開きます。

現状は何もサービスを操作していないため、ログが発行されてませんので、EC2インスタンスを起動しパブリックサブネット→プライベートサブネットのインスタンスにping通信をしてみたいと思います。

ログの確認

ロググループからログイベントが確認できます。

内容は以上です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です