問題タブ [amazon-kms]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
python - ec2 インスタンスから aws kms キーを取得する
AWS EC2 インスタンスで実行されている Python アプリケーションで、AWS の「KMS キー」をハードコーディングしないようにしています。AWS EC2 インスタンスには、特定の KMS キーへのアクセスが定義されている IAM ロールが割り当てられています。インスタンスには、リストへのアクセス権がありません。アカウント内のすべての KMS キーが、1 つだけにアクセスできます.アプリケーションからアクセスできる KMS キー名を取得する方法はありますか (boto3 を使用しますか?) KMS キー IAM ロールの定義は次のようになります:
encryption - 小さなアプリケーション データの暗号化/復号化に Amazon KMS を使用するデメリット
Amazon Lambda のペアは、小さなアプリケーション データを対称的に暗号化および復号化します。これを容易にするために Amazon KMS を使用したいと考えています。これは、シークレット ストレージとキー ローテーションの問題を解決し、さらにいくつかの問題を解決するためです。
Amazon KMS 開発者ガイドには次のように記載されています。
これらの操作は、データ キーを暗号化および復号化するように設計されています。暗号化操作で AWS KMS カスタマーマスターキー (CMK) を使用し、4 KB (4096 バイト) を超えるデータを受け入れることはできません。パスワードや RSA キーなどの少量のデータを暗号化するために使用することはできますが、アプリケーション データを暗号化するようには設計されていません。
さらに、アプリケーション データの暗号化にはAWS Encryption SDKまたはAmazon S3 暗号化クライアントを使用することを推奨しています。
AWS 暗号化 SDKの列挙された利点は明白であり、特に暗号学者ではない開発者にとって非常に魅力的ですが、この質問の目的のために、状況がそれらの代替手段にとって好ましくないと仮定しましょう.
アプリケーション データが 4k を超えることは絶対にないと確信しているのに、Amazon KMS を使用してこのデータを暗号化および復号化してはならないのはなぜですか?
使用事例
私のチームは、会社のサービスと API で使用される新しい認証レイヤーを実装しています。私たちは JWT 仕様を実装していますが、JWE / JWS 準拠のトークン署名を悩ませている広く文書化された暗号に関する不満を回避するつもりですが、ペイロードを対称的に暗号化しています。したがって、非暗号化トークン検証操作 (有効期限と残り) の標準ライブラリ実装の利点を維持し、暗号化の「フットガン」を残します。