Amazon Cognito是一个身份验证和用户管理服务,可以为应用程序提供用户注册、登录和访问控制的功能。用户角色是在Cognito中用于控制用户访问权限的一种机制。下面是一个包含代码示例的解决方法,用于在Amazon Cognito中创建和管理用户角色。
const AWS = require('aws-sdk');
const cognito = new AWS.CognitoIdentityServiceProvider();
const params = {
UserPoolId: 'your-user-pool-id',
Username: 'new-user-username',
TemporaryPassword: 'temp-password',
};
cognito.adminCreateUser(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
const params = {
UserPoolId: 'your-user-pool-id',
Username: 'existing-user-username',
GroupName: 'group-name',
};
cognito.adminAddUserToGroup(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
const iam = new AWS.IAM();
const params = {
RoleName: 'user-role',
AssumeRolePolicyDocument: JSON.stringify({
"Version": "2012-10-17",
"Statement": [{
"Effect": "Allow",
"Principal": {
"Federated": "cognito-identity.amazonaws.com"
},
"Action": "sts:AssumeRoleWithWebIdentity",
"Condition": {
"StringEquals": {
"cognito-identity.amazonaws.com:aud": "your-user-pool-id"
}
}
}]
})
};
iam.createRole(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
const params = {
RoleName: 'user-role',
PolicyArn: 'arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess',
};
iam.attachRolePolicy(params, function(err, data) {
if (err) {
console.log(err, err.stack);
} else {
console.log(data);
}
});
这些示例演示了如何在Amazon Cognito中创建和管理用户角色。通过使用这些代码示例,您可以按照自己的需求创建和配置用户角色。