我应该授予秘密管理员权限吗?

To which should I give the secret manager permission?

我想授予访问机密管理器的权限

const rdsKeySecretArn = resourceName.rdsKeyInfos()['arn'];
const rdsKeySecret = secretsmanager.Secret.fromSecretCompleteArn(this, 'SecretFromCompleteArn', rdsKeySecretArn);

rdsKeySecret.grantRead(cluster)// fargate cluster 
rdsKeySecret.grantRead(ecsAdminService) //service
rdsKeySecret.grantRead(taskDefinitionAdmin) // taskdefinition
rdsKeySecret.grantRead(djangoContainer) // container

grantRead显示错误

Argument of type 'Cluster' is not assignable to parameter of type 'IGrantable'

我尝试 servicetaskdifinitioncontainer

但是他们显示相同的错误。

我该如何解决?

要直接回答问题,您应该将其授予任务角色:

rdsKeySecret.grantRead(taskDefinitionAdmin.taskRole);

任务角色是任务中的容器 运行 在调用 AWS 服务时承担的角色。

也就是说,更好的方法是使用 secrets prop with Secret.fromSecretsManager(rdsKeySecret)

通过环境变量传递秘密

这不会暴露秘密,它会在运行时解析并传递给容器。 CDK 将自动创建适当的权限