既存のKMSキーで暗号化したCloudWatch LogsにVPCフローログを配信する【AWS】

・暗号化したCloudWatcをVフローログに配信したい
・暗号化したCloudWatcをVフローログに配信したい
記事の目次
まず初めにKMSのポリシーを確認してみましょう。
AWSマネジメントコンソールにサインインしサインインし、KMSのダッシュボードへ移動
エイリアスをクリックしKMSポリシーを確認し、編集をクリック
principalのserviceに「”logs.ap-northeast-1.amazonaws.com”」を追加してください。
下記は私の環境の例となります。
{
"Version": "2012-10-17",
"Id": "key-consolepolicy-3",
"Statement": [
{
"Sid": "Enable IAM User Permissions",
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::<YOUR_ACCOUNT_ID>:root"
},
"Action": "kms:*",
"Resource": "*"
},
{
"Sid": "Allow Transit Gateway Flow Logs to use the key",
"Effect": "Allow",
"Principal": {
"Service": [
"logs.ap-northeast-1.amazonaws.com",
"delivery.logs.amazonaws.com"
]
},
"Action": [
"kms:Encrypt",
"kms:Decrypt",
"kms:ReEncrypt*",
"kms:GenerateDataKey*",
"kms:DescribeKey"
],
"Resource": "*"
}
]
}
今回はAWS CLIを用いて作成を行います。
下記コマンドより、配信するロググループの作成を行なってください
aws logs create-log-group --log-group-name my-log-group --kms-key-id "KMS_KEY_ARN"
実行する環境はAWS CLIのセットアップができていればどこでもできますが、マネジメントコンソールの下記の箇所からでも実行可能です。
次にCloudWatcに割り当てるロールの作成を行います。
IAMのダッシュボードに移動し「ポリシーの作成」をクリック
下記のコマンドを入力し「次へ」をクリック
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents",
"logs:DescribeLogGroups",
"logs:DescribeLogStreams"
],
"Resource": "*"
}
]
}
任意のポリシー名を入力し
確認画面で問題なさそうであれば、「ポリシーの作成」をクリックし完了させてください。
次にロールの作成を行います。
引き続きIAMロールのダッシュボードからロールを選択し「ロールを作成」をクリックします。
principalに下記コマンドを追記
Principal: {
"Service": "vpc-flow-logs.amazonaws.com"
},
全体像はこんな感じです。
許可を追加では、先ほど作成した許可ポリシーを選択
次の画面で任意の名前を入力し「ロールを作成」をクリック
VPCダッシュボードに移動
下記の画面よりフローログを作成をクリック※内容は任意で入力してください。
作成が完了すればVPCフローログが配信されるはずです。
下記コマンドより、ロググループの詳細を確認できるので、KmsKeyIdが入っていることを確認しましょう。
aws logs describe-log-groups --log-group-name-prefix "YOUR_LOG_GROUP_NAME"
以上です。誰かの参考になれば幸いです。