IAM有一个名为Simple Token Service (STS)
的服务组件。它允许您通过SDK / API创建临时访问,以访问AWS资源,而无需创建专用凭据。这些STS令牌具有用户定义的生命周期,并且在那之后被销毁。人们使用此服务从Android / IOS应用程序等移动设备访问内容。
但我不知道如何使用这项服务。
感谢任何帮助或支持。
谢谢
答案 0 :(得分:0)
STS和IAM齐头并进,使用起来非常简单。由于您没有提供用例,请允许我在编码之前解释一些事情。
注意:我在PHP中编码,SDK版本为3。
STS的想法是创建一些tokens
,允许持有者在您(所有者或受让人)泄露您自己的凭据时执行某些操作。您将使用哪种类型的STS取决于您想要做什么。 Possible actions are listed here
E.g.1:通常,您使用
AssumeRole
进行跨帐户访问或 联邦。想象一下,您拥有多个帐户并需要访问 每个帐户中的资源。您可以在中创建长期凭据 每个帐户都可以访问这些资源。但是,管理所有这些 凭据并记住哪个帐户可以访问哪个帐户 耗时的。相反,您可以创建一组长期 一个帐户中的凭据,然后使用临时安全凭证 通过在这些帐户中担任角色来访问所有其他帐户。例如:如果您想使用MFA进行保护,通常会使用
GetSessionToken
对Amazon EC2 StopInstances等特定AWS API的编程调用。
我们假设您有一个IAM用户,并且您想为该用户创建许多临时凭证,每个凭据的时间范围 15分钟。然后你将编写以下代码:
$stsClient = \Aws\Laravel\AwsFacade::createClient('sts', array(
'region' => 'us-east-1'
));
$awsTempCreds = $stsClient->getSessionToken(array(
'DurationSeconds' => 900
));
注意事项:
$stsClient
获取AWS Facade
,这是Laravel框架的一部分。您可以通过传递凭据来掌握$stsClient
。请阅读此installation guide,了解如何实例化$stsClient
。STS
是全局资源,即它不要求您位于特定区域,因此您必须始终将区域设置为us-east-1
。如果您的区域设置为其他任何内容,则会出现 should be scoped to a valid region, not 'us-west-1'
等错误。Account/IAM
来自这些凭据。以上代码返回AWS账户或IAM用户的一组临时凭证。凭证包括访问密钥ID,秘密访问密钥和安全令牌,以及一些其他信息,如到期时间。
您现在可以将这些临时凭证提供给其他人。让我们说我把这个给了我正巧使用Javascript API
的朋友。他现在可以写这样的代码:
<script>
var accessKey = '<?php echo $credentials["AccessKeyId"] ?>';
var accessToken = '<?php echo $credentials["SecretAccessKey"] ?>';
var accessSessionToken = '<?php echo $credentials["SessionToken"] ?>';
AWS.config.update({
credentials: {
accessKeyId: accessKey,
secretAccessKey: accessToken,
sessionToken: accessSessionToken
},
region: 'us-east-1'
});
var bucket = new AWS.S3();
var file = fileChooser.files[0];
var params = {Bucket: 'mybucket', Key: file.name, ContentType: file.type, Body: file};
bucket.upload(params, function (err, data) {
results.innerHTML = err ? 'ERROR!' : 'UPLOADED.';
}).on('httpUploadProgress', function(evt) {
console.log('Progress:', evt.loaded, '/', evt.total);
});
</script>
此脚本的作用是什么?
mybucket
将非常大的文件(超过100MB)上传到Multipart Upload
。同样,只要临时凭证有权这样做,您就可以对任何AWS资源进行操作。希望这会有所帮助。
答案 1 :(得分:-1)
STS有点难以理解(需要实时阅读)。我会尝试(是的尝试!)尽可能简单地解释。如果您需要执行以下操作,该服务非常有用:
这里有一个完整的例子: Web身份联合与移动应用程序:文章&amp;教程:亚马逊网络服务:http://aws.amazon.com/articles/4617974389850313
更多阅读: 使用身份提供商为移动应用程序创建临时安全证书 - AWS Security Token Service:http://docs.aws.amazon.com/STS/latest/UsingSTS/CreatingWIF.html