2017-02-13 10 views
0

Android AWS SDK에 KMS 암호화 방법이 없습니다. 서버 측에서는 을 사용하여 AmazonS3EncryptionClient 개체를 만들었지 만이 클래스는 Android SDK에서 사용할 수 없습니다. 내 안드로이드 프로젝트에서 자바 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

예, 가능합니다. 나는 세 가지 선택권을 주겠다. 그러나 그들 모두는 당신의 손을 좀더 더 지저분하게해야한다.

옵션 1 : KMS 암호화 자료 공급자를 직접 구현할 수 있습니다. AWS Android SDK에는 특정 클래스 (및 종속성 중 일부)가 없지만 SDK에 필요한 인터페이스가 있습니다 (EncryptionMaterialsProvider). 이를 기반으로 자신의 공급자를 구현할 수 있어야합니다.

옵션 2 : Android SDK에서 제공하는 KMS 클라이언트를 사용하여 KMS에서 자신의 암호화 자료를 검색 한 다음 StaticEncryptionMaterialsProvider을 S3 클라이언트에 전달합니다.

옵션 3 : 직접 암호화/암호 해독을 처리하십시오. 기술적으로 KMS 클라이언트를 사용하여 암호화 자료를 검색 한 다음 official documentation의 KMS 지침에 따라 데이터를 암호화/해독 할 수 있습니다. 당신이 암호화에 익숙하다면 이것을하십시오.