在Amplify中设置访问S3文件所需的AWS IAM角色,并将该角色附加到登录用户的身份验证凭据中。可以使用以下代码示例来实现此目标:
1.创建IAM角色:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"s3:GetObject"
],
"Resource": [
"arn:aws:s3:::your-bucket-name/*"
]
}
]
}
2.将角色附加到登录用户的身份验证凭据中:
import { Auth } from 'aws-amplify';
// 获取登录用户身份验证凭据
const user = await Auth.currentAuthenticatedUser();
const { accessKeyId, secretAccessKey, sessionToken } = user.signInUserSession.credentials;
// 设置AWS.config的身份验证凭据
AWS.config.update({
region: '[your-region]',
credentials: {
accessKeyId: accessKeyId,
secretAccessKey: secretAccessKey,
sessionToken: sessionToken
}
});
// 创建S3实例并设置所需的IAM角色
const s3 = new AWS.S3({
apiVersion: '2006-03-01',
params: { Bucket: '[your-bucket-name]' },
roleArn: '[your-iam-role-arn]'
});
使用以上代码,已登录用户现在可以使用所需的AWS IAM角色访问S3文件。