AWS临时安全证书中的会话令牌有多秘密?

时间:2018-03-15 18:18:11

标签: amazon-web-services aws-sts aws-iam

我想使用临时安全凭证生成预先签名的S3 URL(我的程序正在EC2主机上运行,​​该主机的IAM角色附加了我想要的策略)。

我在this is a great tutorial上看到我应该提供会话令牌作为预签名URL的一部分。向公众公开是否安全?

the docs for how to create a signed request说“AWS使用会话令牌验证临时安全凭证”,但有人可以使用来自临时安全凭证的访问密钥和会话令牌(这两者在预签名中都可见URL)做任何恶意的事情?

简而言之,我的问题是:来自AWS临时安全凭证的会话令牌有多秘密?单独揭示是危险的吗?如果我用相关的访问密钥显示它呢?

提前致谢!我一直在讨论这个问题,因为STS文档对于会话令牌的秘密程度并不是很清楚,我绝对希望在安全方面做正确的事情。

1 个答案:

答案 0 :(得分:0)

会话令牌和access-key-id没有附带的秘密就没用了。从密钥+令牌+签名中反向设计秘密在计算上是不可行的。

预签名URL旨在用于您希望授予用户访问特定资源但不实际授予其凭据的情况,并且如果使用临时凭证签名,则必须包含#include <stdio.h> #include <stdlib.h> #include <math.h> float f(float x); float df(float x); void main() { float x0, x1, maxerror, error, g, e1, e2, e3; printf("NEWTON-RAPHSON PROGRAM \n\n"); printf("Enter x0 : "); scanf("%f",&x0); printf("Enter allowed error (in percentage): "); scanf("%f", &maxerror); while(error>maxerror){ g=f(x0)/df(x0); x1=x0-g; printf("x1 : %.6f",x1); e1=x1-x0; e2=e1/x1; e3=abs(e2); error=e3*100; printf("error : %.6f",error); x0=x1; } } float f(float x) { return pow(x,2)+3*x+2; } float df(float x) { return 2*x+3; } 。如果省略令牌,则服务将使用x-amz-security-token&#34;您提供的AWS访问密钥ID在我们的记录中不存在#34; 使用签名的URL时

没有具体记录令牌中包含哪些信息,但没有文档表明它不适合在此应用程序中使用。似乎可以安全地假设它包含的任何信息都是加密的,并且只能由拥有必要解密密钥的AWS服务提取。