放置凭证文件的位置 AWS android sdk 访问 AWS s3
Location to put credential file AWS android sdk accessing AWS s3
我有一个 android 应用程序调用 s3 将图片上传和下载到存储桶,我现在正在使用 CognitoCachingCredentialsProvider,我想在创建 s3client 对象时开始使用访问密钥作为凭证。
我知道我对 AWS_ACCESS_KEY_ID 和 AWS_SECRET_KEY 进行了硬编码,将它们放在环境变量或主目录中的文件中。
因为我要在我的 android 应用程序中使用 AWS_ACCESS_KEY_ID 和 AWS_SECRET_KEY,环境变量将不可用。我的问题是我应该将这些密钥放在哪里,以便我可以在我的 android 应用程序中使用 s3client。如果应用程序要转到应用程序商店,文件位于何处。
您不需要任何特殊文件。只需将您的凭据硬编码为常量,如 static final
。
您永远不应该在 Android 应用程序、硬编码或单独文件中访问密钥和秘密密钥。如果它在应用程序商店中运行,则尤其如此。这是一个很大的安全风险,因为任何人都可以反编译您的应用并获取您的凭据。
您当前使用的 Cognito 凭据有什么问题?
我有一个 android 应用程序调用 s3 将图片上传和下载到存储桶,我现在正在使用 CognitoCachingCredentialsProvider,我想在创建 s3client 对象时开始使用访问密钥作为凭证。 我知道我对 AWS_ACCESS_KEY_ID 和 AWS_SECRET_KEY 进行了硬编码,将它们放在环境变量或主目录中的文件中。
因为我要在我的 android 应用程序中使用 AWS_ACCESS_KEY_ID 和 AWS_SECRET_KEY,环境变量将不可用。我的问题是我应该将这些密钥放在哪里,以便我可以在我的 android 应用程序中使用 s3client。如果应用程序要转到应用程序商店,文件位于何处。
您不需要任何特殊文件。只需将您的凭据硬编码为常量,如 static final
。
您永远不应该在 Android 应用程序、硬编码或单独文件中访问密钥和秘密密钥。如果它在应用程序商店中运行,则尤其如此。这是一个很大的安全风险,因为任何人都可以反编译您的应用并获取您的凭据。
您当前使用的 Cognito 凭据有什么问题?