いくつかのサービスリクエストの作成に関するAndroidアプリケーションからのリクエストを取得するバックエンドサービスを作成しています。これらのサービス要求には、サービス項目およびその要求に関連するいくつかの画像に関する詳細が含まれます。 S3を使用してアンドロイドアプリケーションから直接画像を保存し、バックエンドサービスでAPI呼び出しによって保存された画像のキーを取得する必要があります。S3を使用してモバイルアプリケーションから画像を保存する
このアプローチの問題は、モバイルアプリケーションが共有バケットにアクセスする許可です。
- 共有バケットのアクセスキーをアプリケーションに保存すると、このコードはデコンパイルされ、秘密が侵害されます。
- もう1つの選択肢は、バックエンドサービスにAPIを作成して、画像をS3に配置する前にモバイルアプリケーションに認証キーを返すことです。このようにして、シークレットを定期的に回転させることもできます。
これらのアプローチのどちらがセキュリティの面で優れていますか?私が逃している他のアプローチはありますか? S3を使ってファイルを保存するという標準的なアクセス方法のように聞こえるので、この特定のシナリオには何かが必要です。
@ BrennanバックエンドサービスからSTSを使用してモバイルアプリケーションの一時アカウントを作成し、これらの画像をS3にアップロードできることを意味しますか?これにより、これらの資格情報をアプリケーションに配布する際の問題は解決しません。そのためのAPIを作成する必要があります。 – Ansh
アカウントを作成しないで、一時的な資格情報を要求します。 STS APIは、IAMの役割のコンテキスト内で動作する資格情報を提供します。制限された特権を持ち、短時間しか持続せず、再び使用することはできません。本質的に、それらは時間特権制限付きアクセスキー –