Amazon Web Services ブログ

Category: AWS Key Management Service

高度な防御のために EKS 暗号化プロバイダーのサポートを利用する

Gyuho Lee、Rashmi Dwaraka、Michael Hausenblas Amazon EKS で AWS の暗号化プロバイダーをネイティブにサポートする計画を発表した際、皆さまから頂いたご意見の大半は「すぐ入手したいのですが」というものでした。 高度な防御のための重要なセキュリティ機能である、暗号化プロバイダー向けの EKS サポートを開始しました。これで、独自のマスターキーを使用し、EKS で Kubernetes シークレットのエンベロープ暗号化を使用できるようになりました。この投稿では、その背景と開始方法について解説します。 背景 Kubernetes のシークレットで、パスワードや API キーなどの機密情報を Kubernetes 固有の方法で管理できます。たとえば、kubectl create secret を使用してシークレットリソースを作成すると、Kubernetes API サーバーは base64 エンコード形式で etcd に保存します。EKS では、AWS が管理する暗号化キーを使用してディスクレベルで暗号化された etcd ボリュームを処理します。 エンベロープ暗号化とは、キーを別のキーで暗号化することです。なぜこれが必要なのでしょうか? これは、機密データを保存するアプリケーションに対するセキュリティのベストプラクティスで、高度な防御のためのセキュリティ戦略の一部でもあるからです。つまり、AWS KMS にマスターキーを (長期) 保存し、Kubernetes API サーバーでのデータキー生成に使用します。このキーは Kubernetes シークレットに保存した機密データの暗号化/復号化に使用します。 これまで、エンベロープ暗号化のために EKS で独自のマスターキーを使用するネイティブな方法はありませんでした。今回のリリースで、GoDaddy の外部シークレットや HashiCorp Vault などの外部ソリューションを操作して、Kubernetes シークレットを独自のキーで暗号化する必要がなくなりました。AWS KMS を使用すれば、EKS […]

Read More

クラウドにおける安全なデータの廃棄

クラウドにおける統制をお客様が考慮する場合、基本的な考え方は大きく異なるものではありません。ただし、クラウドならではの統制を考慮すべきケースがあることも事実です。その際には、従来のオンプレミスのやり方を無理にクラウドに当てはめようとしてもうまくは行きません。大事なことはその統制が何を目的としていたのかに立ち返り、その上で、New normal(新しい常識)にあった考え方や実装をすすめる必要性を理解し、実践することです。この投稿では、メディアやデータの廃棄を例として、セキュリティのNew normalを考えていきます。 メディア廃棄における環境の変化 データのライフサイクルに応じた情報資産の管理は多くのお客様の関心事項です。 オンプレミスの統制との変更という観点では、メディア廃棄時の統制は従来のオンプレミス環境とクラウド環境では異なります。オンプレミス環境の利用者はハードウェアの消磁や破砕などを実行することでデータの保全を実行してきました。また、メディア廃棄をサードーパーティに委託し、その廃棄証明の提出をもって“確実な廃棄の証跡”として管理しているケースもありました。 AWSの環境ではセキュリティ責任共有モデルに基づき、クラウドのインフラストラクチャの管理はAWSの統制となるため、お客様はその統制が実施されるていることを評価していく必要があります。お客様はAWSが管理するハードウェアデバイスに物理的にアクセスすることはできないため、従来であれば自組織、場合によってはサードパーティに委託していたメディアの廃棄を自組織の統制範囲として行うことはありません。また、仮想環境のストレージは物理的なハードウェアと異なり、特定の利用者が占有しているとは限らないため、廃棄時に利用者に紐付けた管理や通知を行うことは現実的ではありません。 AWSにおけるメディアの廃棄 AWS データセンターは、セキュリティを念頭に置いて設計されており、統制により具体的なセキュリティが実現されています。ユーザーデータの保存に使用されるメディアストレージデバイスは AWS によって「クリティカル」と分類され、そのライフサイクルを通じて非常に重要な要素として適切に取り扱われます。AWS では、デバイスの設置、修理、および破棄 (最終的に不要になった場合) の方法について厳格な基準が設けられています。ストレージデバイスが製品寿命に達した場合、NIST 800-88 に詳細が説明されている方法を使用してメディアを廃棄します。ユーザーデータを保存したメディアは、安全に停止するまで AWS の統制から除外されることはありません。AWSで扱われるメディアはワイプ処理もしくは消磁処理され、AWSのセキュアゾーンを離れる前に物理的に破壊されます。AWS の第三者レポートに文書化されているように、AWS データセンターに対する第三者の検証によって、AWS がセキュリティ認証取得に必要となるルールを確立するためのセキュリティ対策を適切に実装していることが保証されます。お客様はこうした第三者のレポートをAWS Artifactから入手することが可能です。 AWSにおけるサードパーティの管理 AWSにおいては、本投稿執筆時点(2019年12月19日)においてお客様のコンテンツにアクセス可能なサードパーティーのプロバイダはありません。こうした事実は第三者の検証において評価を得るとともに、AWSのサードパーティアクセスページにおいて公表しており、また、変更がある場合にお客様は通知を受けることも可能です。 目的に立ち返る:なんのために”メディア廃棄”を行うか そもそもメディア廃棄の統制を行う目的は何でしょうか。脅威を踏まえて考えれば、組織の所有する(およびしていた)データが許可なく第三者に漏洩することを防ぐことにあります。メディア廃棄の証明をとることは、メディアの廃棄後も、データが第三者により許可なくアクセスされないことを評価するための手段にほかなりません。お客様にとって重要なことはデータがライフサイクルを通じて確実に保護されることです。メディアの廃棄の証明はその手段のうちの一つ(適切に処理されたことの保証手段)にすぎません。お客様の統制を離れたデータが保護されることを確実にすることに焦点をあてることで、環境がクラウドに変わったとしてもお客様の求める管理目的を達成することが出来るのです。 暗号化を活用したデータの保護と廃棄記録 AWSはお客様に重要なデータやトラフィックの暗号化による保護を推奨しており、そのための機能を提供しています。利用終了後もデータを保護する有効な手段として、暗号化による予防的な統制、そして処理の実行を確実に記録することは強く推奨されます。 暗号化がなぜ有効なのでしょうか。暗号化されたデータはそれを復号するための鍵がなければデータとして復元することが出来ません。暗号化に利用する鍵と暗号化されたデータへのアクセスを分離することで権限のない第三者によるデータへのアクセスを予防することが出来ます。このように暗号化を行い、その鍵を消去することはCryptographic Erase(CE:暗号化消去)としてNIST SP800-88においても紹介されています。 AWSのストレージサービスでは利用開始時にデフォルトで暗号化を行う機能を提供(Amazon EBS, Amazon S3)しています。また、Amazon Key Management Services (KMS)によりお客様の鍵によりデータを暗号化することが可能です。これによりお客様が定義したポリシーで鍵へのアクセスを統制しながら利用状況の証跡を取得することが可能となります。また、AWS Configにより意図しない設定の変更や設定ミスの検知および修正を自動化するといった発見的および是正的な統制を組み込むことも容易です。こうした統制を実施することでAWS上のお客様のデータに対して、ライフサイクルに応じた保護を行うことがより容易になりました。 お客様によるデータ廃棄の統制例 統制の一例として、ストレージ領域をデフォルトで暗号化を行う設定とすることで第三者によるアクセスへの保護を実現します。そしてEBSやS3 Bucketを削除する際には、あわせて当該領域の暗号化に用いた鍵をAWS Lambdaを使用してKMSより削除します。これにより従来行っていた当該データの復号が困難になるとともに廃棄証明の代わりとして、暗号化による保護を実施した記録をお客様自身で自動的に取得、管理することができるようになります。鍵へのアクセスが無くなることで、当然AWSによっても、またお客様も廃棄されたデータへのアクセスはできなくなります。   情報セキュリティを管理するためには目的にあわせた管理策を実施する必要があります。しかし一方で、手段自体が目的化してしまい、それを無理に新しい環境であるクラウドにあてはめてしまうアンチパータンが発生することがあります。本投稿ではメディアの廃棄を一つの例示としてとりあげましたが、セキュリティの管理策を実施するうえでの目的に立ち返り、クラウド上で行う上での妥当性、効果や効率性、そして何よりもクラウドの特性を生かしたさらなるセキュリティの向上を実現することでNew Normalに前向きに取り組むことができます。   このブログの著者 松本 照吾(Matsumoto, Shogo) セキュリティ アシュアランス本部 本部長 […]

Read More

AWS KMS の新機能 公開鍵暗号によるデジタル署名

AWS Key Management Service で公開鍵暗号をサポートするようになりました。AWS SDK の新しい API を使ってアプリケーションデータを保護するために公開鍵、秘密鍵のキーペアを作成、管理、利用することが可能になりました。既に提供されている共通鍵暗号機能と同様に、公開鍵暗号の秘密鍵は KMS サービスの外側には出ないカスタマーマスターキー(CMK)として生成出来ます。また、データキーとしても生成可能で、データキーの秘密鍵の部分はアプリケーションに CMK で暗号化して渡すことが可能です。公開鍵 CMK の秘密鍵の部分は、AWS KMS のハードウェアセキュリティモジュールに格納されるため、AWS 従業員を含む誰も平文のキーマテリアルにアクセスすることは出来ません。AWS KMS のサポートする公開鍵のタイプは、 RSA 2048, RSA 3072, RSA 4096, ECC NIST P-256, ECC NIST P-384, ECC NIST-521, ECC SECG P256k1となります。 リリースの背景 システム間でデジタルメッセージの整合性を保証する一般的な方法はデジタル署名です。送信者は元のメッセージに暗号アルゴリズムに基づいた暗号鍵を使ってデータ構造を追加します。これにより、暗号鍵にアクセス出来る受信者は暗号学的にメッセージが改変されていないことを確認できます。受信者が送信者が使ったのと同じ暗号鍵にアクセス出来ない場合に、公開鍵暗号によるデジタル署名の仕組みが役立ちます。送信者は鍵の公開部分をすべての受信者に公開できますが、送信者は鍵の秘密部分を使って署名をコントロールすることが引き続き可能です。公開鍵暗号は信頼されたソースコードや認証認可用のトークン、文書の電子署名、エレクトリックコマースのトランザクション、セキュアメッセージングなどに利用されています。AWS KMS は 基本的なデジタル署名と言われている機能をサポートします。これは署名オブジェクトの中に ID 情報が含まれていないものです。一般的に ID 情報をデジタル署名に添付する方式はデジタル証明書です。もしお客様のアプリケーションが署名や署名確認のためにデジタル証明書を必要としている場合には、AWS Certificate Manager のプライベート CA 機能をおすすめします。 このサービスはデジタル署名アプリケーションのためにプログラム的に暗号鍵を含んだ証明書を作成してデプロイする機能を提供します。典型的なデジタル証明書を使うアプリケーションは、Webサーバー上で通信をセキュアにするために使われるTLS 処理です。 AWS KMS […]

Read More

ポスト量子暗号 TLS が AWS KMS でサポートされました

AWS Key Management Service (AWS KMS) が KMS API エンドポイントに接続する際に使われる Transport Layer Security (TLS) ネットワーク暗号化プロトコルにおけるポスト量子暗号ハイブリッド鍵交換をサポートしました。この投稿では、ポスト量子暗号 TLS とは何か、 ハイブリッド鍵交換とは何か、 なぜこれらの技術が重要か 、この機能でどのようなメリットを得られるのか、そしてフィードバックの方法について説明します。 ポスト量子暗号 TLS とは? ポスト量子暗号 TLS は、ポスト量子暗号の暗号プロトコルを追加する機能です。 AWS はオープンソースの TLS 実装である s2n を使用しています。2019年6月に AWS はポスト量子暗号 s2n をリリースしました。これは、IETF ドラフトで定義されている2種類のポスト量子暗号ハイブリッド暗号スイートを実装しています。暗号スイートは、従来型とポスト量子暗号の両方のセキュリティ保護を行う暗号鍵交換方式を指定するものです。 ポスト量子暗号 TLS の重要性 大規模な量子コンピュータは、TLS 接続の暗号鍵交換で使用されている既存の公開鍵暗号を破る可能性があります。大規模な量子コンピューターは現時点で利用可能ではありませんが、長期的なセキュリティ保護のニーズについて考え、準備しておくことが重要です。記録された TLS トラフィックは将来的に大規模な量子コンピュータで復号出来る可能性があります。TLS 接続の上で送信されているデータの長期間の機密性維持が必要なアプリケーションを開発している場合、大規模な量子コンピュータが実用化され、悪意を持った人に利用可能になる前にポスト量子暗号に移行することを検討するべきでしょう。AWS はこの機能の提供について取り組んでおり、お客様にも準備して頂きたいと考えています。 AWS は大規模な量子コンピュータの実現を待つのではなく、今この機能を提供します。 お客様は、アプリケーションに対する潜在的なパフォーマンス影響を計測することが可能です。また、お客様は、ポスト量子暗号スキームによってもたらされる追加の利点を得ることが可能です。AWS はこの機能が既に存在する KMS エンドポイントへの接続に関するセキュリティーのバーを向上させると考えていると共に、新しい暗号スイート帯域利用率やレイテンシに影響を与えると考えています。また、TLS 接続を中継する中間システムにも影響を与える可能性があります。将来に渡るサービスの改善のために AWS はこれらのお客様環境における影響についてフィードバックして頂きたいと考えています。 ポスト量子暗号 […]

Read More

AWS KMS の暗号化機能を使って、Amazon RDS のデータを保護する

あらゆる業界の組織にとって、データのプライバシーは不可欠です。暗号化サービスは、不正アクセスからデータを保護する標準的な方法の 1 つです。暗号化では正しい復号化キーがないと、データが読み取れないようにデータを変更します。 Amazon RDS は AWS が所有するキーを使用して、デフォルトでデータを暗号化します。デフォルト以外のキーを使用してデータを暗号化することを希望するお客様もいます。そのため、デフォルト以外のキーを使用する場合、堅牢なキーの作成、管理、削除のツールとプロセスがデータセキュリティに不可欠です。こうしたツールとプロセスは、キーの有効期限がデータの可用性に影響することを防ぐのにも役立ちます。 この投稿では、AWS KMS が RDS に保存したデータのデータ暗号化とキー管理プロセスを簡素化する方法について説明します。今回取り上げるトピックは、次のとおりです。 キー管理 キーの作成 暗号化データベースの作成 暗号化データベーススナップショットの作成とコピー キーのローテーション キーアクセスの制御 AWS KMS の導入 KMS を使用して、RDS などの AWS のサービスに保存しているデータを暗号化できます。キーのアクセス許可は、IAM と完全に統合しています。さらに、すべての KMS API 呼び出しは AWS CloudTrail への書き込みを行い、キーの作成、使用、削除の完全な監査証跡を提供します。KMS キーの長さは 256 ビットで、ガロア/カウンターモード (GCM) の Advanced Encryption Standard (AES) を使用します。詳細については、AWS Key Management Service Cryptographic Details (PDF) をご参照ください。 RDS はすべてのキータイプをサポートしますが、次のテーブルは KMS で使用される […]

Read More

[AWS Black Belt Online Seminar] AWS Key Management Service (KMS) 資料公開

先日 (2018/11/21) 開催しました AWS Black Belt Online Seminar「AWS Key Management Service (KMS)」の資料を公開しました。 AWS Black Belt Online Seminar AWS Key Management Service (KMS) from Amazon Web Services Japan 過去資料はこちらをご覧ください。 今後の AWS Black Belt Online Seminar のスケジュール 直近で以下のオンラインセミナーを予定しています。各オンラインセミナーの詳細およびお申し込み先は下記URLからご確認いただけます。皆様のご参加をお待ちしております! 11月分申込先 ≫  12月分申込先 ≫ AWS CloudFormation アップデート 2018 年 11 月 28 日 | 18:00 – 19:00 | IT 知識レベル:★★☆☆☆ | AWS 知識レベル:★★☆☆☆ […]

Read More

発表: Amazon Athena が暗号化されたデータのクエリのサポートを追加

昨年 11 月に、当社は毎日膨大な量のデータに安全にアクセスして調べる必要があるお客様を支援するための重要なステップとなることを期待して、サービスをマーケットに投入しました。このサービスは Amazon Athena にほかなりません。私はこれを、オブジェクトストレージのクエリにより「1 回のジャンプで背の高いクエリを飛び越える」ことを試みるマネージド型サービスであると考えています。AWS のお客様が、Amazon S3 に保存された大量のデータを簡単に分析してクエリを実行できるようにするサービスです。 Amazon Athena は、ユーザーが標準 SQL を使用して Amazon S3 のデータを簡単に分析できるようにする、サーバーレスでインタラクティブなクエリサービスです。Athena の中核となるのは、ANSI SQL のサポートによりクエリを実行する分散 SQL エンジンの Presto と、Athena が CSV、JSON、ORC、Avro、Parquet などのよく使用されるデータ形式に対応できるようにし、create table、drop table、alter table などのよく使用されるデータ定義言語 (DDL) オペレーションを追加する Apache Hive です。Athena は、構造化されたデータ形式および構造化されていないデータ形式で Amazon Simple Storage Service (S3) に保存されたデータセットへのパフォーマンスの高いクエリアクセスを可能にします。Hive 対応 DDL ステートメントと ANSI SQL ステートメントは、AWS マネジメントコンソールから、または Athena JDBC ドライバーをダウンロードして利用することで SQL […]

Read More

AWS KMSを使用してAmazon Kinesisレコードを暗号化および復号する

コンプライアンスやデータセキュリティの要件が厳しいお客様は、AWSクラウド内での保存中や転送中など、常にデータを暗号化する必要があります。この記事では、保存中や転送中もレコードを暗号化しながら、Kinesisを使用してリアルタイムのストリーミングアプリケーションを構築する方法を示します。 Amazon Kinesisの概要 Amazon Kinesisプラットフォームを使用すると、要求に特化したストリーミングデータを分析または処理するカスタムアプリケーションを構築できます。 Amazon Kinesisは、ウェブサイトクリックストリーム、金融取引、ソーシャルメディアフィード、ITログ、トランザクショントラッキングイベントなど、何十万ものソースから1時間につき数テラバイトのデータを連続的にキャプチャして保存できます。 Amazon Kinesis Streamsは、HTTPSを使用してクライアント間でデータを暗号化し、転送されているレコードの盗聴を防止します。ただし、HTTPSで暗号化されたレコードは、データがサービスに入ると解読されます。このデータは24時間保管され(最大168時間まで延長可能)、アプリケーションの処理、再処理、処理遅延の際の巻き取りに対して十分なゆとりが確保されています。 ウォークスルー Amazon Kinesis Producer Library(KPL)、Kinesis Consumer Library(KCL)、AWS KMS、aws-encryption-sdkを使用してサンプルKinesisプロデューサおよびコンシューマアプリケーションへの暗号化と復号を行います。この記事で使用されているKinesisレコードの暗号化と復号に使用される方法とテクニックは、あなたのアーキテクチャに簡単に再現できます。いくつか制約があります: AWSは、暗号化と復号のためのKMS APIリクエストの使用料金を請求します。詳しくは、「AWS KMSの料金」を参照してください。 Amazon Kinesis Analyticsを使用して、このサンプルアプリケーションのクライアントによって暗号化されたレコードのAmazon Kinesis Streamにクエリすることはできません。 アプリケーションでレイテンシの低い処理が必要な場合は、レイテンシに多少の上乗せがあることに注意してください。 次の図は、ソリューションのアーキテクチャを示しています。

Read More

新発表 – AWS Key Management ServiceでのBring Your Own Keys機能

AWS Key Management Service (KMS) は暗号鍵のシームレスな中央集中管理を提供します。私達のお客様は、鍵管理インフラストラクチャ(KMI)に関する、可用性、スケーラビリティ、物理的なセキュリティ、ハードウェアメンテナンスを自動的にハンドルするこのフルマネージドなサービスをとても気に入っています。また、KMSは、作成、ローテーション、ライフサイクル管理機能を持つ一つのダッシュボードで鍵管理を集中化します。初期費用無し、カスタマーマスターキー(CMK)1つ当たり月額$1の利用価格をベースとして、KMSは、S3, EBS, RDS, Redshift, およびその他のKMSとインテグレートされたAWSサービス内に保管されたデータを容易に暗号化することが出来ます。 多くのAWSのお客様は、鍵を作成して管理するのにKMSを利用しています。しかしながら、KMSが提供するその他の機能を活用しながら、鍵に対するローカルコントロールを維持したいというお客様がいらっしゃいます。お客様は私たちに、世代や鍵の保管場所に関するローカルコントロールは、よりセンシティブなワークロードをクラウドで稼働させるためのセキュリティとコンプライアンス要求を満たすのに役立つと仰っています。 Bring Your Own Keys  このような重要なユースケースをサポートするために、本日、KMSにユーザー独自の鍵を持ち込むことが可能になったことを発表できることを嬉しく思います。この機能により、極めてセンシティブなワークロードが保護でき、AWSの外に鍵のセキュアなコピーを保持することが可能になります。この新しい機能により、RSA PKCS #1標準をサポートする全ての鍵管理およびHSM(Hardware Security Module)ソリューションからの鍵のインポートが可能になり、その鍵をAWSサービスおよびアプリケーションから利用することが可能になります。また、KMSは詳細な監査情報を提供するためにAWS CloudTrailと協調して動きます。全てをまとめると、高可用性を提供するためにAWSを利用すれば、鍵のライフサイクルと耐久性に強大なコントロールを得ることができます。今日のほとんどの鍵管理ソリューションはHSMをバックエンドに使っていますが、全てのHSMが鍵管理ソリューションを提供するわけでは有りません。 インポートプロセスは、AWSマネージメントコンソールを使う,  AWS CLIを使う,  あるいは KMS APIをコールすることによって開始できます。オープンな環境に秘密鍵を転送させないために、インポートプロセスでは、アカウントにユニークな、KMSによって提供される公開鍵を使って、事前にユーザーのKMIの鍵をラップすることが求められます。鍵をラップするために、PKCS #1 スキームを利用することができます。 私は、Importing Key Material in AWS Key Management Serviceの指示に従って、KMSコンソールでCreate keyをクリックすることから始めます: エイリアスと説明を入力し、外部(External)を選択し、“I understand…”チェックボックスにチェックを付けました: それから、鍵管理のためのKMS APIを許可するIAMユーザーのセットを選びます。(このステップは、次に行うようにKMSおよび外部キーの両方に適用されます。): 次に、鍵を使ってデータの暗号化/復号化ができるIAMユーザーのセットを選択します: キーポリシーを確認し、ラッピングキーとインポートトークンをダウンロードしました。ラッピングキーは、私がKMSにインポートして使おうとしている256bitの秘密鍵を暗号化するのに利用する2048bitのRSA公開鍵です。インポートトークンは、私の鍵をKMSに正しくインポートさせるためのメタデータを含んでいます。 ZIPファイルを展開し、ラッピングキーを私のEC2インスタンス上のディレクトリ上に配置しました。それから、opensslコマンドを2度使いました:一度目は秘密鍵を生成するためで、2度目はその秘密鍵をラッピングキーでラップするためです。インポートする256bit鍵を生成するためにopensslを便利な方法で利用している事に注目してください。本番データ用としては、鍵の生成と保管にもっとセキュアな方法(商用の鍵管理やHSMソリューションが望ましい)を利用すべきです。 $ openssl rand -out plain_text_aes_key.bin 32 $ openssl rsautl -encrypt -in plain_text_aes_key.bin -oaep \ -inkey wrappingKey_fcb572d3-6680-449c-91ab-ac3a5c07dc09_0804104355 \ -pubin -keyform DER -out enc.aes.key 最後に、“I am ready to upload…”をチェックしてNextをクリックし、鍵の有効期限と共に鍵マテリアルを指定して、全ての情報が集まります。有効期限を過ぎた後はAWSから利用できなくなるので、要件がはっきりするまで有効期限無しのオプションを選択したいと考えるかもしれません。いつでも同じ鍵を再インポートして、有効期限を後からリセットすることができます。 Finishをクリックして、鍵が有効化され利用できるようになりました: […]

Read More