Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

196
Visualizações
¿Cómo agrego el permiso IAM de Secrets Manager?

Estoy leyendo los documentos de CDK sobre SecretsManager y no estoy seguro de haber entendido mal, pero lo que pensé que funcionaría a partir de su ejemplo no parece otorgar el permiso que esperaba. Esencialmente, tengo una pila que contiene algunas Lambdas y me gustaría que todas pudieran leer dos secretos del SecretsManager.

 class CdkStack extends cdk.Stack { /** * * @param {cdk.Construct} scope * @param {string} id * @param {cdk.StackProps=} props */ constructor(scope, id, props) { super(scope, id, props); // eslint-disable-next-line no-new new APIServices(this, "APIServices"); const role = new iam.Role(this, "SecretsManagerRead", { assumedBy: new iam.AccountRootPrincipal(), }); const dbReadSecret = new secretsmanager.Secret(this, "databaseReader"); const dbWriteSecret = new secretsmanager.Secret(this, "databaseWriter"); dbReadSecret.grantRead(role); dbWriteSecret.grantRead(role); } }

Si lo entendí correctamente, simplemente debería crear este rol y darle permisos para acceder a los secretos. Sin embargo, mi Lambda todavía falló cuando traté de ejecutarlos. ¿Debo hacer algo más que no se menciona en los documentos que estaba leyendo sobre la asignación explícita de ese rol a las Lambdas también?

over 4 years ago · Santiago Trujillo
1 Respostas
Responde à pergunta

0

Dependiendo de su contexto real, hay dos variantes posibles.

1. Importar rol existente

Si la función de Lambda se ha predefinido (p. ej., en una pila diferente), puede agregar permisos adicionales a la función de ejecución de Lambda existente importándola primero a esta pila de CDK.

 class CdkStack extends cdk.Stack { constructor(scope, id, props) { // ... // Import the existing role into the stack const roleArn = 'arn:aws:iam::123456789012:role/MyExistingLambdaExecutionRole' const role = iam.Role.fromRoleArn(this, 'Role', roleArn, { mutable: true, }); const dbReadSecret = new secretsmanager.Secret(this, "databaseReader"); const dbWriteSecret = new secretsmanager.Secret(this, "databaseWriter"); dbReadSecret.grantRead(role); dbWriteSecret.grantRead(role); } }

Para obtener más información sobre el uso del módulo aws-iam CDK, aquí está el enlace a la documentación . Aquí puede obtener más información sobre el propio rol de ejecución de Lambda.

2. Función Lambda definida como parte de la pila

Si la función lambda se definió en algún lugar de esta pila, simplemente puede adjuntar los permisos a la función Lambda a través de su referencia usando dbReadSecret.grantRead(lambda.role) y dbWriteSecret.grantRead(lambda.role) respectivamente.

 class CdkStack extends cdk.Stack { constructor(scope, id, props) { // ... // Create the function or retrieve the reference if // it has been defined somewhere else in the stack const lambda = ... const dbReadSecret = new secretsmanager.Secret(this, "databaseReader"); const dbWriteSecret = new secretsmanager.Secret(this, "databaseWriter"); dbReadSecret.grantRead(lambda.role); dbWriteSecret.grantRead(lambda.role); } }

Por favor, eche un vistazo a la respuesta a esta pregunta como referencia.

over 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda