我应该授予秘密管理员权限吗?
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'
我尝试 service
、taskdifinition
和 container
。
但是他们显示相同的错误。
我该如何解决?
要直接回答问题,您应该将其授予任务角色:
rdsKeySecret.grantRead(taskDefinitionAdmin.taskRole);
任务角色是任务中的容器 运行 在调用 AWS 服务时承担的角色。
也就是说,更好的方法是使用 secrets
prop with Secret.fromSecretsManager(rdsKeySecret)
通过环境变量传递秘密
这不会暴露秘密,它会在运行时解析并传递给容器。 CDK 将自动创建适当的权限
我想授予访问机密管理器的权限
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'
我尝试 service
、taskdifinition
和 container
。
但是他们显示相同的错误。
我该如何解决?
要直接回答问题,您应该将其授予任务角色:
rdsKeySecret.grantRead(taskDefinitionAdmin.taskRole);
任务角色是任务中的容器 运行 在调用 AWS 服务时承担的角色。
也就是说,更好的方法是使用 secrets
prop with Secret.fromSecretsManager(rdsKeySecret)
这不会暴露秘密,它会在运行时解析并传递给容器。 CDK 将自动创建适当的权限