使用AWS CDK TypeScript编写堆栈时,可以通过以下代码将新的CfnUserPoolGroup与创建UserPool的堆栈相关联:
import cognito = require('aws-cdk-lib/aws-cognito');
import iam = require('aws-cdk-lib/aws-iam');
const myStack = new Stack(app, 'myStack');
const userPool = new cognito.UserPool(myStack, 'myUserPool', {
// UserPool configurations
});
const userPoolGroup = new cognito.CfnUserPoolGroup(myStack, 'myUserPoolGroup', {
groupName: 'myGroupName',
userPoolId: userPool.userPoolId
});
// Add required IAM permissions for Cognito
userPoolGroup.addToResourcePolicy(new iam.PolicyStatement({
effect: iam.Effect.ALLOW,
principals: [new iam.AnyPrincipal()],
actions: [
"cognito-idp:*",
"cognito-identity:*",
"sts:GetCallerIdentity"
],
resources: ['*']
}));
在上面的示例中,“myUserPool”是创建UserPool的资源,而“myUserPoolGroup”是创建新CfnUserPoolGroup的资源。userPoolId属性将新创建的组与现有的UserPool相关联。
还需要将必需的IAM权限添加到CfnUserPoolGroup。在此示例中,我们使用addToResourcePolicy方法将IAM权限添加到CfnUserPoolGroup。这将确保CfnUserPoolGroup在创建时具有所需的权限。
通过上述方法就可以在创建UserPool的堆栈中创建新的CfnUserPoolGroup。