Amazon Web Services ブログ

Tag: AWS SDK

AWSと.NET Core 2.0

昨日、.NET Core 2.0がリリースされ(訳注:このブログ記事の原文は2017/8/15に発行されています)、AWSでは .NET Coreプラットフォームに追加された新機能と完成度にとても興奮しています。今後数か月以内に、AWSサービスをアップデートして、.NET Core 2.0のファーストクラスのサポートを提供します。 2つの簡単な方法ですぐにAWS上で.NET Core 2.0を使い始めることができます。   AWS Elastic Beanstalkの利用 Elastic Beanstalkを使用すると、Webアプリケーションを簡単に展開できます。現在、.NET Frameworkおよび.NET Core 1.1がサポートされています。 Elastic Beanstalkプラットフォームは、すぐに.NET Core 2.0をサポートするように更新されるでしょう。 それまではデプロイメントパッケージをカスタマイズして、デプロイ中のインスタンスに.NET Core 2.0をインストールするようにBeanstalkに指示することができます。 ASP.NET CoreアプリケーションがBeanstalkにデプロイされると、AWS-windows-deployment-manifest.jsonというJSONマニフェストがツールキットによって作成され、Beanstalkにアプリケーションのデプロイ方法を指示します。 以前のブログ記事では、このマニフェストのカスタマイズ方法について説明しました。 この機能を使用して、デプロイ前にPowerShellスクリプトを実行して.NET Core 2.0をインストールすることができます。 最初のステップとして、ASP.NET Core 2.0プロジェクトにaws-windows-deployment-manifest.jsonというファイルを追加します。 aws-windows-deployment-manifest.jsonのプロパティウィンドウで、[Copy to Output Directory]フィールドを必ず[Copy Always]に設定してください。 このファイルは、通常、ツールキットによって生成されますが、ツールキットがファイルがすでに存在することが判明した場合は、代わりにデプロイメントウィザードで指定された設定で既存のファイルを変更します。   次に、下の内容をコピーしてaws-windows-deployment-manifest.jsonに貼り付けます。 これはASP.NET Coreアプリケーションをデプロイし、デプロイの前に./Scripts/installnetcore20.ps1 PowerShellスクリプトを実行することを示しています。   { “manifestVersion”: 1, “deployments”: { “aspNetCoreWeb”: [ { […]

Read More

AWS SDK for Java 2.0 開発者向けプレビューを公開

AWS 開発者用ツールのチームは AWS SDK for Java のリリースに向けて熱心に取り組んできました。そして本日、バージョン 2.0 の開発者用プレビューを公開するに至りました。このバージョンは過去にリリースした 1.11.x codebase を大きく書き換えたものです。整合性、イミュータビリティ、使い勝手の良さに視点を向けて Java 8 の上に構築しました。 新しい SDK には、ノンブロッキングの I/O のサポート、ランタイムで使用したい HTTP 実装を選択できるなど、リクエストが多かった機能を含んでいます。新しいノンブロッキング I/O サポートは既存のものに比べより効率的で、サービスクライアントの Async バリアントのスレッドベース実装を取り入れています。ノンブロッキングのリクエストはそれぞれ CompletableFuture オブジェクトを戻します。バージョン 2.0 SDK では、これまでの API にいくつもの変更を追加しています。たとえば、既存のクライアントのコンストラクタと変更可能なメソッドを、クライアントビルダーと変更不可能なクライアントをベースにした非同期モデルと置換します。また、SDK はリージョンをシングルリージョンクラスにするために使用するクラスの異種コレクションを折りたたみ、ストリーミング用 API の新しいセットを提供します。SDK は GitHub でご利用いただけます。GitHub に関する問題をスタートして公開フィードバックを送信したり、いつもの方法でリクエストのプルを送信することができます。 SDK の詳細については AWS 開発者ブログの「AWS SDK for Java 2.0 – 開発者用プレビュー (AWS SDK for Java 2.0 […]

Read More

AWS SDK for C++ – 本稼働環境で使用する準備ができました

1 年近くに及ぶ開発者からのフィードバックと貢献により、バージョン 1.0 の AWS SDK for C++ が利用可能になりました。本稼働環境での使用をお勧めします。SDK はセマンティックバージョニングに従っているため、バージョン 1.0 から、任意のバージョン 1.x の C++ SDK を信頼することができ、アップグレードによってビルドが破損することはありません。 SDK のデベロッパープレビューについて寄せられたフィードバックに基づいて、いくつかの重要な変更や機能強化を行いました。 セマンティックバージョニング – SDK はセマンティックバージョニングに従っています。バージョン 1.0 から、1.x シリーズ内のアップグレードによってビルドが破損することはありません。 Transfer Manager – 元の TransferClient は機能が強化された新しい TransferManager インターフェイスへと進化しました。 ビルドプロセス – CMake ビルドチェーンは、プラットフォームのデフォルト値を簡単に上書きできるよう機能が強化されました。 簡略化された設定 – 実行時に SDK 全体の設定オプションを簡単に設定できるようになりました。 暗号化 – SDK には、サポートされるすべてのプラットフォームで対称暗号化のサポートが含まれるようになりました。 NuGet – 現在、SDK は NuGet を通じて入手できます (詳細については、「AWS SDK […]

Read More

データの暗号化をシンプルにし、アプリケーションの可用性を向上する新しいAWS Encryption SDKの利用法

本日、AWSの暗号化チームは AWS Encryption SDKを発表します。この新しいSDKによって、開発者は、アプリケーションのセキュリティに影響を及ぼしうるエラーを最小化しながら容易に暗号化を実施できます。新しいSDKはAWSのお客様でなくてもご利用いただけますが、AWSのお客様にとってすぐに利用可能なサンプルが含まれています。   暗号化を行う際、開発者は次の2つの問題によく直面します: どのように正しく暗号鍵を生成し、利用するか 利用後、鍵をどのように保護するか 新しいAWS Encryption SDKによって提供されるライブラリは、ユーザーの開発環境で利用可能な暗号化プロバイダを利用し、低レベルの詳細な部分を透過的に実装することで1つ目の問題に対応します。また、どのように鍵を保護したいかを選択できる直感的なインターフェースを提供することで2つ目の問題への対応を手助けします。開発者は、暗号化の複雑性ではなく構築しようとしているアプリケーションコアにフォーカスすることが出来ます。この記事では、AWS Encryption SDKを利用してどのようにデータの暗号化プロセスを簡素化できるか、単一のリージョンあるいは鍵管理ソリューションに縛られない、アプリケーションの可用性を改善するのに役立つ方法でどのように鍵を保護できるかについてお伝えします。   エンベロープ暗号化と新しいSDK AWS Encryption SDKを利用する際に理解しておくべき重要なコンセプトは、エンベロープ暗号化(ハイブリッド暗号化としても知られています)です。アルゴリズムが違えば強度も異なり、単一のアルゴリズムで全てのユースケースにフィットするものは有りません。例えば、(RSAやAWS Key Mangement Service [KMS]などの)優れた鍵管理の特性を持つソリューションは、大容量のデータに対してはあまり有効ではありません。エンベロープ暗号化は、(AES-GCMのように)大容量データに適した単一用途のデータキーを使ってバルクデータを暗号化することでこの問題を解決します。エンベロープ暗号化ではその後、鍵管理に適したアルゴリズムや他のソリューションを使ってデータキーを暗号化します。 エンベロープ暗号化のもう一つの優位性は、複数の受信者で復号化できるようひとつのメッセージを暗号化できることです。全員で鍵を共有(これはたいていセキュアではありません)したり、全体のメッセージを複数回暗号化したり(これは現実的ではありません)するのではなく、データキーだけがそれぞれの受信者の鍵を使って暗号化されます。これによって重複した処理を顕著に削減でき、複数の鍵を利用した暗号化がより実用的になります。   エンベロープ暗号化の問題点は実装の複雑さです。全てのクライアントはデータフォーマットの生成および構文解析ができ、複数の鍵とアルゴリズムをハンドルでき、理想的には妥当な範囲で前方および後方互換性を保てる事が必須になります。   AWS Encryption SDKはどう役立つのか? AWS Encryption SDKは、セキュアなアルゴリズムの組み合わせ(将来的に拡張可能)をサポートし、マスターキーのタイプやアルゴリズムの制限が無い、慎重にデザインされレビューされたデータフォーマットを採用しています。AWS Encryption SDK自身は、KMS、および AWS CloudHSMやその他の PKCS #11デバイスを含むJava Cryptography Architecture (JCA/JCE)を直接サポートするpoduction-readyなリファレンスJava実装です。他言語でのSDKの実装については現在開発中です。 AWS Encryption SDKの一つの利点は、低レベルの暗号処理はSDKで取り扱われるため、データの移動にフォーカスすることができることです。次に、パワフルでセキュアなマルチリージョンソリューションを構築する簡単なコードを示します。   Example 1:高可用性のためにアプリケーションの機密データを複数リージョンのKMSマスターキーで暗号化する 高可用性アプリケーションのベストプラクティスの一つは、複数のアベイラビリティゾーンだけではなく複数のリージョンでデプロイすることです。KMSはリージョンをまたがってカスタマーマスターキー(CMK)を共有できないため、データがKMSで暗号化されている場合にはこのようなデプロイメントは困難です。エンベロープ暗号化では、異なるリージョンの複数のKMS CMKを使ってデータキーを暗号化することでこの制限に対するワークアラウンドを取ることができます。各リージョンで稼働するアプリケーションは暗号文の復号化を行うために、高速で信頼性の高いアクセスのためにローカルのKMSエンドポイントを利用することができます。 このドキュメントの全ての例において、 IAM roles for EC2を設定したAmazon EC2インスタンスが稼働していることを想定しています。IAM […]

Read More