~~NOCACHE~~ ## DynamoDBのセキュリティ対策 引用:「予防的対策」「発見的対策」「対処的対策」という3つの分類がこれにあたる。 https://thinkit.co.jp/cert/trend/15/8/2.htm ## 概要図 「予防的対策」「発見的対策」について、図にしてみた。 DynamoDBに限らず、VPCに配置できないサービスは大体こんな感じと思う。 {{:Aws:DynamoDB:pasted:20210624-224152.png?direct 800x0}} ## データイベントの記録 [[Aws:CloudTrail:DataEventRecordingDynamoDB|Aws/CloudTrail/データイベントの記録-DynamoDB]]を参照 データイベントの記録でCloudWatchLogsへの連携ですが、S3に書き出したログから連携されるのかCloudWatchLogsに出力されるまでタイムラグがあります。 ## ポリシー設定 ### Lambdaに割り当てる想定のポリシー例 特定のテーブルに、特定のIPアドレスかつ特定のVPCエンドポイント経由でアクセスを許可する。 ・[IpAddress]と[StringEquals]はAND条件 ・[IpAddress]内のIPリストはOR条件 ・[StringEquals]内のVPCエンドポイントリストはOR条件 { "Version": "2012-10-17", "Statement": [ { "Sid": "VisualEditor0", "Effect": "Allow", "Action": "dynamodb:*", "Resource": "arn:aws:dynamodb:ap-northeast-1:{アカウントID}:table/{テーブル名}", "Condition": { "IpAddress": { "aws:SourceIp": [ "192.168.0.0/24", "10.0.0.0/24" ] }, "StringEquals": { "aws:SourceVpce": [ "vpce-1234567890aaa", "vpce-1234567890bbb" ] } } } ] } ### グループ(ユーザ)に割り当てるポリシーの方針 グループ(ユーザ)に割り当てるポリシーは、少なくとも2パターンは欲しい。 ・DynamoDBのテーブル作成や削除などDynamoDBFullAccessを持ったグループ(ユーザ)を用意し、テーブルに関する作業はDynamoDB管理者に依頼して作業してもらう。 ・上記以外のユーザは、DynamoDB関連の権限を許可しないor明示的に拒否するポリシーをアタッチする。 {{tag>AWS DynamoDB}}