既存の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"
以上です。誰かの参考になれば幸いです。