DynamoDB での予防的セキュリティのベストプラクティス - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB での予防的セキュリティのベストプラクティス

以下のベストプラクティスは、Amazon DynamoDB のセキュリティインシデントの予防に役立ちます。

保管時の暗号化

DynamoDB は、AWS Key Management Service (AWS KMS) に保存されているテーブル、インデックス、ストリーミング、Backup に保存されているすべてのユーザーデータを保存時に暗号化します。この機能は、基になるストレージへの不正アクセスからデータを保護することによって、データ保護の追加レイヤーを提供します。

DynamoDB でユーザーデータを暗号化するために AWS 所有のキー (デフォルトの暗号化タイプ)、AWS マネージドキー を使用するか、カスタマーマネージドキーを使用するかを指定できます。詳細については、「保管時の Amazon DynamoDB 暗号化」を参照してください。

IAM ロールを使用した DynamoDB へのアクセス認証

ユーザー、アプリケーション、およびその他の AWS サービスが DynamoDB にアクセスするには、有効な AWS 認証情報が AWS API リクエストに含まれている必要があります。アプリケーションまたは EC2 インスタンスに AWS 認証情報を直接保存しないでください。自動更新されない長期認証情報条件のため、漏洩すると業務に深刻な悪影響が及ぶ可能性があります。IAM ロールでは、AWS サービスおよびリソースにアクセスするために使用できる一時的なアクセスキーを有効にすることができます。

詳細については、「Amazon DynamoDB の Identity and Access Management」を参照してください。

IAM ポリシーを使用した DynamoDB ベース認可

許可を付与する場合、許可を取得するユーザー、取得する許可の対象となる DynamoDB API、およびそれらのリソースに対して許可される特定のアクションを決定します。最小限の特権の実装は、セキュリティリスクはもちろん、エラーや悪意ある行動によってもたらされる可能性のある影響を減らす上での鍵となります。

IAM アイデンティティ (ユーザー、グループ、ロール) にアクセス権限ポリシーをアタッチし、DynamoDB リソースでオペレーションを実行する許可を付与します。

これを行うには、次を使用します。

詳細に設定されたアクセスコントロールのための IAM ポリシー条件を使用する

DynamoDB でアクセス権限を付与するときは、アクセス権限ポリシーを有効にする方法を決める条件を指定できます。最小限の特権の実装は、セキュリティリスクはもちろん、エラーや悪意ある行動によってもたらされる可能性のある影響を減らす上での鍵となります。

IAM ポリシーを使用して、アクセス許可を付与するときに条件を指定できます。例えば、次の操作を実行できます。

  • テーブルまたはセカンダリインデックス内の項目と属性に対する読み込み専用アクセスをユーザーに許可する許可を付与します。

  • ユーザーのアイデンティティに基づいて、テーブルの特定の属性への書き込み専用アクセスのアクセス権限をユーザーに付与します。

詳細については、「詳細に設定されたアクセスコントロールのための IAM ポリシー条件の使用」を参照してください。

VPC エンドポイントとポリシーを使用した DynamoDB へのアクセス

Virtual Private Cloud (VPC) 内からのみ DynamoDB にアクセスする必要がある場合は、VPC エンドポイントを使用して、必要な VPC からのみのアクセスに制限する必要があります。これにより、トラフィックがオープンインターネットを通過してその環境に晒されるのを防ぐことができます。

DynamoDB の VPC エンドポイントを使用すると、以下を使用してアクセスを制御および制限できます。

  • VPC エンドポイントポリシー — これらのポリシーは DynamoDB VPC エンドポイントに適用されます。DynamoDB テーブルへの API アクセスを制御および制限が許可されます。

  • IAM ポリシー — ユーザー、グループ、またはロールにアタッチされたポリシーで aws:sourceVpce 条件を使用すると、DynamoDB テーブルへのすべてのアクセスが指定の VPC エンドポイントを経由するよう強制できます。

詳細については、「Amazon DynamoDB のエンドポイント」を参照してください。

クライアント側の暗号化を考慮する

DynamoDB にテーブルを実装する前に、暗号化戦略を計画することをお勧めします。機密データまたは機密データを DynamoDB に保存する場合は、クライアント側の暗号化をプランに含めることを検討してください。これにより、データをできるだけ送信元に近い状態で暗号化し、ライフサイクル全体にわたってデータを確実に保護できます。伝送中および保管時の機密データを暗号化することで、サードパーティーがお客様のプレーンテキストデータを使用することはできません。

DynamoDB 用の AWS Database Encryption SDK は、DynamoDB に送信する前にテーブルデータを保護するのに役立つソフトウェアライブラリです。DynamoDB テーブル項目を暗号化、署名、検証、復号します。どの属性を暗号化して署名するかを制御できます。