Slide 1

Slide 1 text

DynamoDBのリソースポリシーを試してみた Masaki Suzuki (DeNA Co., Ltd.) 2024/03/29 週刊AWSキャッチアップ (2024/03/18週)

Slide 2

Slide 2 text

アジェンダ 1. 自己紹介&参考資料 2. DynamoDBのリソースポリシーについて 3. 試してみた 4. IaC対応について 5. まとめ 2

Slide 3

Slide 3 text

自己紹介 ◼ 名前: 鈴木 正樹 (Masaki Suzuki) ◼ 会社: 株式会社DeNA エンターテイメント開発事業本部 ◼ 職業: クラウドアーキテクト(AWS全般、特にサーバーレスバックエンド・IaC) ◼ 技術・その他: • AWS(特にLambda & AWS CDK), その他サーバーレスバックエンド全般, CI/CD etc. • TypeScript, JavaScript(Node.js), Jestなど • JAWS-UG CDK支部, JAWS-UG 名古屋支部, AWS Community Builder (Serverless, 2023~) ◼ SNS: • @makky12 (SUZUKI Masaki@クラウドエンジニア) • @makky12.bsky.social • https://github.com/smt7174/ • http://makky12.hatenablog.com/ 3

Slide 4

Slide 4 text

参考資料 ◼ Using resource-based policies for DynamoDB • AWS公式ドキュメント ◼ Amazon DynamoDBがリソースベースポリシーをサポートしました • クラスメソッドさんのブログ(より詳細な解説がされています) ◼ ポリシーの評価論理 • AWS公式による、IAMポリシーでのアクセス制御の解説 • めちゃくちゃ役に立つドキュメントなので、ぜひ一読をお勧めします • 特に「アカウント内でのリクエストの許可または拒否の決定」のフローチャート ◼ 【AWS】DynamoDBにリソースポリシーが追加されたので試してみた • 私のブログです。(主にAWS, AWS CDK, JavaScriptについて書いてます) 4

Slide 5

Slide 5 text

DynamoDBのリソースポリシーについて

Slide 6

Slide 6 text

DynamoDBがリソースポリシーに対応しました 6 ◼ DynamoDBでもリソースポリシーでのアクセス制御が可能に ◼ S3, API Gatewayなどと同様の機能 ◼ DynamoDBをよりセキュアにできる(使い方次第で) ここに 図 や テキスト を挿入します

Slide 7

Slide 7 text

試してみた

Slide 8

Slide 8 text

実行内容 8 • LambdaからDynamoDBテーブルのデータ取得を実行 • Lambdaは以下2パターンを試す • アクセス権限なし(IAMロールに何もポリシーをアタッチしない) • アクセス権限あり(IAMロールにAmazonDynamoDBFullAccessポリシーをアタッチ) 上記の際に、DynamoDBリソースポリシーの有無による挙動を確認

Slide 9

Slide 9 text

付与するポリシー 9 • リソースポリシーに上記ポリシーを付与 • EffectにAllow(許可)かDeny(拒否)を設定 • PrincipalのARNは「IAMロール」のARN(LambdaのARNではない)

Slide 10

Slide 10 text

1. アクセス権限がない場合 10 ◼ リソースポリシーを設定しない場合、 AccessDeniedExceptionが発生 ◼ リソースポリシーにEffect:Allowを設定すると、全データを取得可能 ◼ リソースポリシーが効いている ◼ Lambdaロールに明示的Denyをアタッチすると、リソースポリシーに関係 なくAccessDeniedExceptionが発生するので注意 ここに 図 や テキスト を挿入します

Slide 11

Slide 11 text

2. アクセス権限がある場合 11 ◼ リソースポリシーが未設定の場合、 全データを取得可能 ◼ リソースポリシーにEffect:Denyを設定すると、 AccessDeniedException が発生 ◼ この場合もリソースポリシーが効いている ここに 図 や テキスト を挿入します

Slide 12

Slide 12 text

IaC対応について

Slide 13

Slide 13 text

IaC対応について(CloudFormation/AWS CDK) 13 • CloudFormationテンプレートは対応済(ResourcePolicyプロパティ) • 下記URL参照(※1) • 表示言語を「English」にしないと表示されないので注意(「日本語」ではダメ) 日本語対応しました! • AWS CDKは未対応(L1/L2共に) • L1のaddPropertyOverrideを使ってもダメだった(Cannot read properties of undefined が発生) ※1: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws- resource-dynamodb-table.html

Slide 14

Slide 14 text

まとめ

Slide 15

Slide 15 text

まとめ ◼ DynamoDBもリソースポリシーアクセス制御が可能になった ◼ 使い勝手はS3やAPI Gatewayのリソースポリシーと全く同じ ◼ AWS CDKの対応はしばし待とう or contributeしよう! 15

Slide 16

Slide 16 text

DeNA ENGINEERING DeNAのエンジニアの技術・文化・チーム等を伝えるポータルサイトです。 様々な技術発信や、カルチャーの紹介をしています。

Slide 17

Slide 17 text

ご清聴ありがとうございました 以上です