2017-02-13 34 views
0

Android AWS SDKにKMS暗号化の方法はありません。サーバ側ではKMSEncryptionMaterialsProviderを使用してAmazonS3EncryptionClientオブジェクトを作成しますが、このクラスはAndroid SDKでは使用できません。私は私のAndroidのプロジェクトでJava SDKを使用してみましたが、それは例外Androidでクライアント側の暗号化にAWS KMS暗号化を使用できますか?

コード投げた:

KMSEncryptionMaterialsProvider materialProvider = new KMSEncryptionMaterialsProvider(kms_cmk_id); 
encryptionClient = new AmazonS3EncryptionClient(new ProfileCredentialsProvider(), materialProvider, 
       new CryptoConfiguration()) 
      .withRegion(Region.getRegion(Regions.US_WEST_2)); 

は、例外によって引き起こさ

:java.lang.ClassNotFoundExceptionが:クラス を見つけることができませんでしたがパス上の "javax.management.MBeanServerFactory":DexPathList

+0

AndroidはJavaのサブセットです。 Java SDKはおそらく動作しません – donkon

+0

あなたのユースケースは何ですか? –

+0

@ketanvijayvargiya更新された質問を参照してください –

答えて

1

はい、可能です。私はあなたに3つのオプションを与えますが、それらのすべてはあなたの手を少し汚くする必要があります。

オプション1:KMS暗号化マテリアルプロバイダの独自の実装を導出できます。その特定のクラス(およびその依存関係の一部)はAWS Android SDKには存在しませんが、SDKに必要なインターフェイスはEncryptionMaterialsProviderです。それに基づいて独自のプロバイダを実装することは可能です。

オプション2:Android SDKで提供されているKMSクライアントを使用して、独自の暗号化資料をKMSから取得し、StaticEncryptionMaterialsProviderをS3クライアントに渡します。

オプション3:自分で暗号化/復号化を処理します。技術的には、KMSクライアントを使用して暗号化資料を取得してから、official documentationのKMSガイダンスに従ってデータを暗号化/復号化することができます。暗号化に慣れている場合は、これを実行してください。

関連する問題