【发布时间】:2020-07-05 15:51:45
【问题描述】:
我有一个创建 S3 存储桶、VPC 和 RDS 实例的 CDK 脚本。部署工作正常,但销毁失败,并显示我的用户无权secretsmanager:DeleteSecret。
我使用 IAM 策略测试工具进行了检查,它通过了。我可以通过 UI 删除秘密。 CDK 销毁命令仍然失败。有什么想法吗?
CDK 脚本:
class AcmeCdkStack extends cdk.Stack {
constructor(scope: cdk.App, id: string, props?: cdk.StackProps) {
super(scope, id, props);
// create a general purpose bucket for use with the app
new s3.Bucket(this, 'app-bucket', {
versioned: true
});
// create a vpc for our application
const vpc = new ec2.Vpc(this, 'app-vpc, {
cidr: "10.0.0.0/16",
});
// create a database instance
const db = new rds.DatabaseInstance(this, `app-db`, {
engine: rds.DatabaseInstanceEngine.POSTGRES,
instanceClass: ec2.InstanceType.of(ec2.InstanceClass.T3, ec2.InstanceSize.MICRO),
vpc,
masterUsername: `dbadmin`,
deleteAutomatedBackups: false,
deletionProtection: false,
// https://github.com/aws/aws-cdk/issues/4036
removalPolicy: cdk.RemovalPolicy.DESTROY,
});
}
}
const app = new cdk.App();
new AcmeCdkStack(app, 'app-stack;);
错误:
User: arn:aws:iam::0000000000:user/user@acme.com is not authorized to perform: secretsmanager:DeleteSecret on resource: arn:aws:secretsmanager:us-east-1:0000000000:secret:appdbdemoSecret0261-mjgIXOsp5rLL-HxFng1 (Service: AWSSecretsManager; Status Code: 400; Error Code: AccessDeniedException; Request ID: 000000000)
【问题讨论】:
-
也许您的 CDK 使用的角色或 IAM 用户凭证与您自己的不同?
-
我专门使用 IAM 测试工具中的角色进行了测试,在此之前我为角色添加了权限以解决部署时遇到的问题,所以我相当确定我得到了正确的.不过,我会三重检查,ty 是否输入。
-
secretmanager 中的 Secret 可以有自己的策略。也许有什么东西阻塞了?
-
哦,不用等你是对的 :D 我在部署脚本中设置了 AWS_PROFILE,但不是在销毁脚本中,所以它使用的是我的默认凭据,呵呵!非常感谢您的帮助
-
很高兴听到。我会回答以供将来参考。
标签: amazon-web-services aws-cdk aws-secrets-manager