private createIoTRoleAlias()

in infra/stack/iot/thing-installer-stack.ts [161:194]


    private createIoTRoleAlias(roleName: string, account: string) {

        const tokenRole = new iam.Role(this, roleName, {
            roleName: `${this.projectPrefix}-${roleName}`,
            assumedBy: new iam.ServicePrincipal('credentials.iot.amazonaws.com'),
        });
        tokenRole.addToPolicy(this.createGreengrassV2TokenExchangeRoleAccessPolicy());
        
        tokenRole.addToPolicy(new iam.PolicyStatement({
            effect: iam.Effect.ALLOW,
            actions: [
                "s3:GetObject",
                "s3:PutObject",
                "logs:CreateLogGroup",
                "logs:CreateLogStream",
                "logs:PutLogEvents",
                "logs:DescribeLogStreams"
            ],
            resources: ["*"]
        }));

        const tokenRoleAliasName = `${this.projectPrefix}-${roleName}Alias`;
        const provider = this.createCustomResourceProvider(`${roleName}ProivderLambda`);
        new cdk.CustomResource(this, `IoTRoleAliasCustomResource`, {
            serviceToken: provider.serviceToken,
            properties: {
                TokenRoleARN: tokenRole.roleArn,
                IoTRoleAliasName: tokenRoleAliasName
            }
        });

        this.exportOutput('IoTTokenRole', tokenRole.roleName);
        this.exportOutput('IoTTokenRoleAlias', tokenRoleAliasName);
    }