如何在没有安全漏洞的情况下使用 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 密钥和访问密钥的正确方法是什么?
可能有助于您回答这个问题的一个要点,
- 一旦我将秘密密钥和访问密钥用作硬编码字符串并将这些更改推送到我们的私人 git 项目。在意识到我的错误后,我改变了实现,现在使用上面解释的 BuildConfig 方法。我不知道公开凭据是否会出现这种情况。
有几种方法:
- AWS 安全令牌服务 (AWS STS)
- AWS 认知
- AWS 放大
- Android 密钥库
这是关于在移动应用程序中使用 AWS 凭据进行身份验证的官方文档:Authenticating Users of AWS Mobile Applications with a Token Vending Machine
我的 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 密钥和访问密钥的正确方法是什么?
可能有助于您回答这个问题的一个要点,
- 一旦我将秘密密钥和访问密钥用作硬编码字符串并将这些更改推送到我们的私人 git 项目。在意识到我的错误后,我改变了实现,现在使用上面解释的 BuildConfig 方法。我不知道公开凭据是否会出现这种情况。
有几种方法:
- AWS 安全令牌服务 (AWS STS)
- AWS 认知
- AWS 放大
- Android 密钥库
这是关于在移动应用程序中使用 AWS 凭据进行身份验证的官方文档:Authenticating Users of AWS Mobile Applications with a Token Vending Machine