我读过这里:
你有一个移动应用程序。不要在应用程序中嵌入访问密钥,即使在加密存储中也是如此。相反,请使用亚马逊认知管理应用程序中的用户身份。
我想了解一些事情。如果我在认知AWS中使用未经身份验证的身份,是否就像在应用程序中嵌入访问密钥一样,因为任何具有internet访问权限的人都可以获得AWS凭据吗?
启用此选项意味着任何具有internet访问权限的人都可以获得AWS凭据。未经身份验证的身份通常是不登录应用程序的用户。通常,为未经身份验证的标识分配的权限应该比对身份验证的权限具有更大的限制。
有人能解释一下与应用程序嵌入访问密钥和之间有什么区别吗?
发布于 2019-09-23 09:36:10
让我把它们解释清楚。
如果硬编码访问密钥ID、秘密访问密钥和会话令牌,这意味着您要在应用程序中嵌入高度敏感的数据。这方面的一个例子如下:
AwsSessionCredentials awsCreds = AwsSessionCredentials.create(
"your_access_key_id_here",
"your_secret_key_id_here",
"your_session_token_here");
认知身份池用于生成临时AWS访问密钥ID、秘密访问密钥和会话令牌。这是由GetId和GetCredentialsForIdentity API调用返回的。它们是无符号(非SigV4 4签名的) API调用,您可以检索临时AWS凭据,而无需在API调用中将登录参数映射指定为参数。
建议使用认知标识池API调用(由AWS STS支持),而不是硬编码敏感数据,因为每个应用程序都可能容易发生逆向工程。
https://stackoverflow.com/questions/58055950
复制相似问题