Amazon ec2 我如何在AWS中使用IAM提供临时安全Credentail
IAM有一个名为Amazon ec2 我如何在AWS中使用IAM提供临时安全Credentail,amazon-ec2,amazon-iam,Amazon Ec2,Amazon Iam,IAM有一个名为简单令牌服务(STS)的服务组件。它允许您通过SDK/API创建临时访问,以访问AWS资源,而无需创建专用凭据。这些STS令牌有一个用户定义的生命周期,这些令牌将在之后销毁。人们使用此服务访问来自移动设备(如Android/IOS应用程序)的内容 但我不知道如何使用这项服务 感谢您的任何帮助或支持 谢谢STS有点难理解(需要实时阅读)。我将尝试(是的,尝试!)尽可能简单地解释。如果您需要执行以下操作,该服务非常有用: <script> var accessKey =
简单令牌服务(STS)
的服务组件。它允许您通过SDK/API创建临时访问,以访问AWS资源,而无需创建专用凭据。这些STS令牌有一个用户定义的生命周期,这些令牌将在之后销毁。人们使用此服务访问来自移动设备(如Android/IOS应用程序)的内容
但我不知道如何使用这项服务
感谢您的任何帮助或支持
谢谢STS有点难理解(需要实时阅读)。我将尝试(是的,尝试!)尽可能简单地解释。如果您需要执行以下操作,该服务非常有用:
<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>
使用身份提供商为移动应用程序创建临时安全凭据-AWS安全令牌服务:STS和IAM齐头并进,使用非常简单。由于您还没有给出用例,请允许我在开始编码之前解释一些事情 注意:我用PHP编写代码,SDK版本为3。 STS的想法是创建一些
令牌
,它允许持有者在您(所有者或受让人)不损害您自己凭证的情况下执行某些操作。您将使用哪种类型的STS取决于您想做什么
例1:通常,您使用假设角色
进行跨账户访问或
联邦。假设您拥有多个帐户,并且需要访问
每个帐户中的资源。您可以在中创建长期凭据
每个帐户都可以访问这些资源。然而,管理所有这些
凭证,并记住谁可以访问哪个帐户
费时。相反,您可以创建一组长期
一个帐户中的凭据,然后使用临时安全凭据
通过在这些帐户中担任角色来访问所有其他帐户
例2:通常,如果要使用MFA进行保护,可以使用GetSessionToken
对特定AWS API(如Amazon EC2实例)的编程调用
假设您有一个IAM用户,并且希望为该用户创建多个临时凭据,每个凭据的时间范围为15分钟。然后您将编写以下代码:
$stsClient = \Aws\Laravel\AwsFacade::createClient('sts', array(
'region' => 'us-east-1'
));
$awsTempCreds = $stsClient->getSessionToken(array(
'DurationSeconds' => 900
));
注意事项:
$stsClient
。如何通过传递凭据获得$stsClient
,取决于您自己。阅读本文,了解如何实例化$stsClient
STS
是一种全球资源,即它不要求您位于特定区域,因此您必须始终将该区域设置为us-east-1
。如果您的地区设置为其他任何地方,您将收到类似于的错误,应该将范围限定为有效地区,而不是“us-west-1”
帐户/IAM
相同的权限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>
var accessKey='';
var accessToken='';
var accessSessionToken='';
AWS.config.update({
证书:{
accessKeyId:accessKey,
secretAccessKey:accessToken,
sessionToken:accessSessionToken
},
地区:'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(参数、函数(错误、数据){
results.innerHTML=err?'ERROR!':'UPLOADED';
}).on('httpUploadProgress',函数(evt){
log('Progress:',evt.loaded',/',evt.total);
});
此脚本的作用是什么?