DynamoDBのテーブルに対するアクセス制御はIPアドレスではなく、アクセスキーとシークレットアクセスキーで!
DynamoDBでのアクセス制御
DynamoDB のテーブルに対するアクセス制御は、IP アドレスではなく、アクセスキーとシークレットアクセスキーで行います。
DynamoDB はサブネット(VPC)に所属させることができないため、セキュリティグループを設定できず、そのため、IP アドレスでのアクセス制御はできません。
代わりに、アクセスキーとシークレットアクセスキーでアクセス制御を行います。
AWSリソースからDynamoDBへの通信はプライベート
AWS リソースから DynamoDB への通信は、原則としてプライベートです。
DynamoDB はパブリック IP アドレスを有して、インターネット空間に属しています。
したがって、Lambda や EC2 などからの通信もパブリックに行われると思えますが、AWS 間での通信はプライベートです。
両ノードが AWS 上に属している場合には、そのノードがパブリック IP を用いて通信しても、その通信はプライベートとなると公式サイトで記載されています。
これは、インターネットからの攻撃を考慮しなくてもいいというセキュリティに関する話ではありません。
あくまでも実際に発生する通信の流れの話であって、インターネットからのアクセスは可能ですので、当然アクセスキーとシークレットアクセスキーでのアクセス制御が必要となります。
これぞ、真のセキュリティ、ゼロトラスト
最近は IP アドレスによるアクセス制御の効果が薄れているという話をよく聞きます。
理由はネットワークに対する侵入が容易になったことによるものと思われます。
これに伴い、ゼロトラストの考え方が盛んになっています。
ゼロトラストとは、ネットワークは侵入されると考えた上で、セキュリティを強化する考え方です。
ネットワークへの侵入に成功したマルウェアを用いて、リソースにアクセスされたら、IP アドレスによるアクセス制御は意味がなくなってしまいます。
DynamoDB のアクセス制御は、IP アドレスではなく、アクセスキーとシークレットアクセスキーで行うことで、ゼロトラストの考え方に沿ったセキュリティを実現しています。
ちなみに、Azure Cosmos DB も同様の仕組みになっています。
Discussion