在我的html中显示AWS Cognito池ID是否安全?

Mit*_*lan 9 amazon-s3 amazon-web-services amazon-cognito aws-sdk aws-lambda

我正在使用AWS Cognito,Lambda,S3及其更多服务构建无服务器网站。登录页面中的HTML / JS具有认知池ID。这有多安全?我知道隐藏敏感内容是最佳做法。但这不是客户端服务器。它的所有客户,如果我是诚实的。我确实通过lambda调用访问了一些敏感数据。但是,即使此调用也需要一些纯文本敏感的输入,例如用户ID。

    <script src="https://sdk.amazonaws.com/js/aws-sdk-2.3.7.min.js">   </script>
    <script>
    AWS.config.region = 'XX-XXXX-1';
    AWS.config.credentials = new AWS.CognitoIdentityCredentials({
    IdentityPoolId: 'XX-XXXX-1:XXXXXXX-XXXX-XXXX-XXXX-XXXXXXXX'
    });
    var lambda = new AWS.Lambda();
    </script>
Run Code Online (Sandbox Code Playgroud)

我真的不喜欢poolID可见。攻击者可以复制此文件,并强行使用我的Cognito ID。有任何隐藏的想法吗?

Jef*_*ley 5

使用身份池 ID 创建客户端是一项要求,并且将其保留在客户端非常普遍。这本身并不是一个主要的风险,只要您稍加修改,就会大大限制风险。

您可以通过 Cognito 创建并链接到池的角色来降低暴露身份池 ID 的风险。通过这些,您可以缩小 Cognito 将为未经身份验证/经过身份验证的用户生成的凭据的范围。这篇博文有更多关于如何做到这一点的信息。您可以通过极大地限制未经身份验证的用户的权限,直到他们登录到经过身份验证的身份,从而更进一步。