我想使用临时安全凭证生成预先签名的S3 URL(我的程序正在EC2主机上运行,该主机的IAM角色附加了我想要的策略)。
我在this is a great tutorial上看到我应该提供会话令牌作为预签名URL的一部分。向公众公开是否安全?
the docs for how to create a signed request说“AWS使用会话令牌验证临时安全凭证”,但有人可以使用来自临时安全凭证的访问密钥和会话令牌(这两者在预签名中都可见URL)做任何恶意的事情?
简而言之,我的问题是:来自AWS临时安全凭证的会话令牌有多秘密?单独揭示是危险的吗?如果我用相关的访问密钥显示它呢?
提前致谢!我一直在讨论这个问题,因为STS文档对于会话令牌的秘密程度并不是很清楚,我绝对希望在安全方面做正确的事情。
答案 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服务提取。