繁体   English   中英

如何在没有安全漏洞的情况下使用 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 变量访问密钥和访问密钥的方式。 我在这里找到了这个方法。

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);

现在我收到了邮件,上面写着

您的应用程序公开 Amazon Web Services 凭证。

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

可以帮助您回答这个问题的重要一点,

  • 一旦我将密钥和访问密钥用作硬编码字符串并将这些更改推送到我们的私有 git 项目。 在意识到我的错误后,我改变了实现,现在使用 BuildConfig 方法,如上所述。 我不知道这是否可能是公开凭据的情况。

有几种方法:

  1. AWS 安全令牌服务 (AWS STS)
  2. AWS Cognito
  3. AWS 放大
  4. Android 密钥商店

以下是有关在移动应用程序中使用 AWS 凭证进行身份验证的官方文档:使用令牌自动售货机对 AWS 移动应用程序的用户进行身份验证

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM