~~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}}