UNPKG

@aws-cdk/aws-bedrock-agentcore-alpha

Version:

The CDK Construct Library for Amazon Bedrock

76 lines 9.59 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.OAuthCredentialProviderConfiguration = void 0; const aws_iam_1 = require("aws-cdk-lib/aws-iam"); const credential_provider_1 = require("./credential-provider"); const perms_1 = require("../perms"); /** * OAuth credential provider configuration implementation * Can be used with OpenAPI targets * @internal */ class OAuthCredentialProviderConfiguration { credentialProviderType = credential_provider_1.CredentialProviderType.OAUTH; /** * The ARN of the OAuth provider */ providerArn; /** * The ARN of the Secrets Manager secret */ secretArn; /** * The OAuth scopes to request */ scopes; /** * Custom parameters for the OAuth flow */ customParameters; constructor(configuration) { this.providerArn = configuration.providerArn; this.secretArn = configuration.secretArn; this.scopes = configuration.scopes; this.customParameters = configuration.customParameters; } /** * Grant the needed permissions to the role for OAuth authentication */ grantNeededPermissionsToRole(role) { const statements = [ new aws_iam_1.PolicyStatement({ actions: [ ...perms_1.GatewayPerms.GATEWAY_OAUTH_PERMS, ...perms_1.GatewayPerms.GATEWAY_WORKLOAD_IDENTITY_PERMS, ], resources: [this.providerArn], }), new aws_iam_1.PolicyStatement({ actions: perms_1.GatewayPerms.SECRETS_PERMS, resources: [this.secretArn], }), ]; return aws_iam_1.Grant.addToPrincipal({ grantee: role, actions: statements.flatMap(s => s.actions), resourceArns: statements.flatMap(s => s.resources), }); } /** * @internal */ _render() { return { credentialProviderType: this.credentialProviderType, credentialProvider: { oauthCredentialProvider: { providerArn: this.providerArn, scopes: this.scopes, customParameters: this.customParameters, }, }, }; } } exports.OAuthCredentialProviderConfiguration = OAuthCredentialProviderConfiguration; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2F1dGguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJvYXV0aC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBb0U7QUFDcEUsK0RBQTBGO0FBQzFGLG9DQUF3QztBQW9EeEM7Ozs7R0FJRztBQUNILE1BQWEsb0NBQW9DO0lBQy9CLHNCQUFzQixHQUFHLDRDQUFzQixDQUFDLEtBQUssQ0FBQztJQUN0RTs7T0FFRztJQUNhLFdBQVcsQ0FBUztJQUNwQzs7T0FFRztJQUNhLFNBQVMsQ0FBUztJQUNsQzs7T0FFRztJQUNhLE1BQU0sQ0FBVztJQUNqQzs7T0FFRztJQUNhLGdCQUFnQixDQUEwQjtJQUUxRCxZQUFZLGFBQWlDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsYUFBYSxDQUFDLFdBQVcsQ0FBQztRQUM3QyxJQUFJLENBQUMsU0FBUyxHQUFHLGFBQWEsQ0FBQyxTQUFTLENBQUM7UUFDekMsSUFBSSxDQUFDLE1BQU0sR0FBRyxhQUFhLENBQUMsTUFBTSxDQUFDO1FBQ25DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxhQUFhLENBQUMsZ0JBQWdCLENBQUM7S0FDeEQ7SUFFRDs7T0FFRztJQUNILDRCQUE0QixDQUFDLElBQVc7UUFDdEMsTUFBTSxVQUFVLEdBQUc7WUFDakIsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixPQUFPLEVBQUU7b0JBQ1AsR0FBRyxvQkFBWSxDQUFDLG1CQUFtQjtvQkFDbkMsR0FBRyxvQkFBWSxDQUFDLCtCQUErQjtpQkFDaEQ7Z0JBQ0QsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUM5QixDQUFDO1lBQ0YsSUFBSSx5QkFBZSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsb0JBQVksQ0FBQyxhQUFhO2dCQUNuQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO2FBQzVCLENBQUM7U0FDSCxDQUFDO1FBRUYsT0FBTyxlQUFLLENBQUMsY0FBYyxDQUFDO1lBQzFCLE9BQU8sRUFBRSxJQUFJO1lBQ2IsT0FBTyxFQUFFLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1lBQzNDLFlBQVksRUFBRSxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztTQUNuRCxDQUFDLENBQUM7S0FDSjtJQUVEOztPQUVHO0lBQ0gsT0FBTztRQUNMLE9BQU87WUFDTCxzQkFBc0IsRUFBRSxJQUFJLENBQUMsc0JBQXNCO1lBQ25ELGtCQUFrQixFQUFFO2dCQUNsQix1QkFBdUIsRUFBRTtvQkFDdkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO29CQUM3QixNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07b0JBQ25CLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0I7aUJBQ3hDO2FBQ0Y7U0FDRixDQUFDO0tBQ0g7Q0FDRjtBQWxFRCxvRkFrRUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBHcmFudCwgSVJvbGUsIFBvbGljeVN0YXRlbWVudCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgQ3JlZGVudGlhbFByb3ZpZGVyVHlwZSwgSUNyZWRlbnRpYWxQcm92aWRlckNvbmZpZyB9IGZyb20gJy4vY3JlZGVudGlhbC1wcm92aWRlcic7XG5pbXBvcnQgeyBHYXRld2F5UGVybXMgfSBmcm9tICcuLi9wZXJtcyc7XG5cbi8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBPQXV0aFxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4vKipcbiAqIE9BdXRoIGNvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPQXV0aENvbmZpZ3VyYXRpb24ge1xuICAvKipcbiAgICogVGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgQVJOLlxuICAgKiBUaGlzIGlzIHJldHVybmVkIHdoZW4gY3JlYXRpbmcgdGhlIE9BdXRoIGNyZWRlbnRpYWwgcHJvdmlkZXIgdmlhIENvbnNvbGUgb3IgQVBJLlxuICAgKiBGb3JtYXQ6IGFybjphd3M6YmVkcm9jay1hZ2VudGNvcmU6cmVnaW9uOmFjY291bnQ6dG9rZW4tdmF1bHQvaWQvb2F1dGgyY3JlZGVudGlhbHByb3ZpZGVyL25hbWVcbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgcHJvdmlkZXJBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgU2VjcmV0cyBNYW5hZ2VyIHNlY3JldCBjb250YWluaW5nIE9BdXRoIGNyZWRlbnRpYWxzIChjbGllbnQgSUQgYW5kIHNlY3JldCkuXG4gICAqIFRoaXMgaXMgcmV0dXJuZWQgd2hlbiBjcmVhdGluZyB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlciB2aWEgQ29uc29sZSBvciBBUEkuXG4gICAqIEZvcm1hdDogYXJuOmF3czpzZWNyZXRzbWFuYWdlcjpyZWdpb246YWNjb3VudDpzZWNyZXQ6bmFtZVxuICAgKiBSZXF1aXJlZDogWWVzXG4gICAqL1xuICByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIE9BdXRoIHNjb3BlcyBmb3IgdGhlIGNyZWRlbnRpYWwgcHJvdmlkZXIuXG4gICAqIFRoZXNlIHNjb3BlcyBkZWZpbmUgdGhlIGxldmVsIG9mIGFjY2VzcyByZXF1ZXN0ZWQgZnJvbSB0aGUgT0F1dGggcHJvdmlkZXIuXG4gICAqXG4gICAqIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDAgaXRlbXMuIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAgICogTGVuZ3RoIENvbnN0cmFpbnRzOiBNaW5pbXVtIGxlbmd0aCBvZiAxLiBNYXhpbXVtIGxlbmd0aCBvZiA2NC5cbiAgICogUmVxdWlyZWQ6IFllc1xuICAgKi9cbiAgcmVhZG9ubHkgc2NvcGVzOiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGN1c3RvbSBwYXJhbWV0ZXJzIGZvciB0aGUgT0F1dGggY3JlZGVudGlhbCBwcm92aWRlci5cbiAgICogVGhlc2UgcGFyYW1ldGVycyBwcm92aWRlIGFkZGl0aW9uYWwgY29uZmlndXJhdGlvbiBmb3IgdGhlIE9BdXRoIGF1dGhlbnRpY2F0aW9uIHByb2Nlc3MuXG4gICAqXG4gICAqIE1hcCBFbnRyaWVzOiBNYXhpbXVtIG51bWJlciBvZiAxMCBpdGVtcy5cbiAgICogS2V5IExlbmd0aCBDb25zdHJhaW50czogTWluaW11bSBsZW5ndGggb2YgMS4gTWF4aW11bSBsZW5ndGggb2YgMjU2LlxuICAgKiBWYWx1ZSBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDEuIE1heGltdW0gbGVuZ3RoIG9mIDIwNDguXG4gICAqIFJlcXVpcmVkOiBOb1xuICAgKi9cbiAgLyoqXG4gICAqIEN1c3RvbSBwYXJhbWV0ZXJzIGZvciB0aGUgT0F1dGggZmxvd1xuICAgKiBAZGVmYXVsdCAtIE5vIGN1c3RvbSBwYXJhbWV0ZXJzXG4gICAqL1xuICByZWFkb25seSBjdXN0b21QYXJhbWV0ZXJzPzogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbn1cblxuLyoqXG4gKiBPQXV0aCBjcmVkZW50aWFsIHByb3ZpZGVyIGNvbmZpZ3VyYXRpb24gaW1wbGVtZW50YXRpb25cbiAqIENhbiBiZSB1c2VkIHdpdGggT3BlbkFQSSB0YXJnZXRzXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIE9BdXRoQ3JlZGVudGlhbFByb3ZpZGVyQ29uZmlndXJhdGlvbiBpbXBsZW1lbnRzIElDcmVkZW50aWFsUHJvdmlkZXJDb25maWcge1xuICBwdWJsaWMgcmVhZG9ubHkgY3JlZGVudGlhbFByb3ZpZGVyVHlwZSA9IENyZWRlbnRpYWxQcm92aWRlclR5cGUuT0FVVEg7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBPQXV0aCBwcm92aWRlclxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHByb3ZpZGVyQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTZWNyZXRzIE1hbmFnZXIgc2VjcmV0XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc2VjcmV0QXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgT0F1dGggc2NvcGVzIHRvIHJlcXVlc3RcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzY29wZXM6IHN0cmluZ1tdO1xuICAvKipcbiAgICogQ3VzdG9tIHBhcmFtZXRlcnMgZm9yIHRoZSBPQXV0aCBmbG93XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY3VzdG9tUGFyYW1ldGVycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgY29uc3RydWN0b3IoY29uZmlndXJhdGlvbjogT0F1dGhDb25maWd1cmF0aW9uKSB7XG4gICAgdGhpcy5wcm92aWRlckFybiA9IGNvbmZpZ3VyYXRpb24ucHJvdmlkZXJBcm47XG4gICAgdGhpcy5zZWNyZXRBcm4gPSBjb25maWd1cmF0aW9uLnNlY3JldEFybjtcbiAgICB0aGlzLnNjb3BlcyA9IGNvbmZpZ3VyYXRpb24uc2NvcGVzO1xuICAgIHRoaXMuY3VzdG9tUGFyYW1ldGVycyA9IGNvbmZpZ3VyYXRpb24uY3VzdG9tUGFyYW1ldGVycztcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudCB0aGUgbmVlZGVkIHBlcm1pc3Npb25zIHRvIHRoZSByb2xlIGZvciBPQXV0aCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgZ3JhbnROZWVkZWRQZXJtaXNzaW9uc1RvUm9sZShyb2xlOiBJUm9sZSk6IEdyYW50IHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzdGF0ZW1lbnRzID0gW1xuICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAuLi5HYXRld2F5UGVybXMuR0FURVdBWV9PQVVUSF9QRVJNUyxcbiAgICAgICAgICAuLi5HYXRld2F5UGVybXMuR0FURVdBWV9XT1JLTE9BRF9JREVOVElUWV9QRVJNUyxcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5wcm92aWRlckFybl0sXG4gICAgICB9KSxcbiAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBHYXRld2F5UGVybXMuU0VDUkVUU19QRVJNUyxcbiAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5zZWNyZXRBcm5dLFxuICAgICAgfSksXG4gICAgXTtcblxuICAgIHJldHVybiBHcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlOiByb2xlLFxuICAgICAgYWN0aW9uczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5hY3Rpb25zKSxcbiAgICAgIHJlc291cmNlQXJuczogc3RhdGVtZW50cy5mbGF0TWFwKHMgPT4gcy5yZXNvdXJjZXMpLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgX3JlbmRlcigpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXJUeXBlOiB0aGlzLmNyZWRlbnRpYWxQcm92aWRlclR5cGUsXG4gICAgICBjcmVkZW50aWFsUHJvdmlkZXI6IHtcbiAgICAgICAgb2F1dGhDcmVkZW50aWFsUHJvdmlkZXI6IHtcbiAgICAgICAgICBwcm92aWRlckFybjogdGhpcy5wcm92aWRlckFybixcbiAgICAgICAgICBzY29wZXM6IHRoaXMuc2NvcGVzLFxuICAgICAgICAgIGN1c3RvbVBhcmFtZXRlcnM6IHRoaXMuY3VzdG9tUGFyYW1ldGVycyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19