如何在没有安全漏洞的情况下使用 AWS S3 凭证?

How to use AWS S3 credentials without security vulnerability?

我的 Android 应用程序使用 AWS S3 存储图像。以下是我正在使用的版本详细信息。

def aws_version = "2.16.+"
implementation "com.amazonaws:aws-android-sdk-s3:$aws_version"
implementation ("com.amazonaws:aws-android-sdk-mobile-client:$aws_version") { transitive = true }

目前,我通过 BuildConfig 变量访问密钥和访问密钥的方式。 我找到了这个方法 here.

BasicAWSCredentials cred = new BasicAWSCredentials(BuildConfig.key, BuildConfig.secret);//Access Key and Secret Key
AmazonS3Client client = new AmazonS3Client(cred, Region.getRegion(Regions.AP_SOUTH_1));
AwsUploadFile.Companion.uploadFile(this, client, file, shopName, transferListener);

现在我收到了邮件

Your app(s) expose Amazon Web Services credentials.

现在我想知道我做错了什么。 存储 AWS S3 密钥和访问密钥的正确方法是什么?

可能有助于您回答这个问题的一个要点,

有几种方法:

  1. A​​WS 安全令牌服务 (AWS STS)
  2. A​​WS 认知
  3. A​​WS 放大
  4. Android 密钥库

这是关于在移动应用程序中使用 AWS 凭据进行身份验证的官方文档:Authenticating Users of AWS Mobile Applications with a Token Vending Machine