You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

部署CDK项目跨区域调用AWS Secrets Manager遇资源未找到错误

跨区域调用AWS Secrets Manager密钥的问题解决方法

可能的原因及解决步骤

1. 验证密钥ARN的准确性

确认props.config.mongoDb.credentials.arn对应的是us-east-1区域密钥的完整ARN,格式应为:
arn:aws:secretsmanager:us-east-1:ACCOUNT_ID:secret:SECRET_NAME-XXXXXX
注意末尾的随机后缀是Secrets Manager自动生成的,必须完整包含,可直接从us-east-1区域的Secrets Manager控制台复制正确ARN。

2. 配置IAM权限允许跨区域访问

部署CDK栈的角色,以及后续需要访问该密钥的资源(如Lambda、ECS任务角色),必须附加包含目标密钥访问权限的IAM策略:

{
  "Effect": "Allow",
  "Action": [
    "secretsmanager:GetSecretValue",
    "secretsmanager:DescribeSecret"
  ],
  "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:MongoDBCreds-abc123"
}

替换上述ARN为实际的密钥ARN,确保策略覆盖所有需要访问该密钥的身份。

3. 使用更明确的CDK引用方法

建议使用Secret.fromSecretCompleteArn替代fromSecretAttributes,该方法专为完整ARN引用场景设计,减少参数歧义:

import * as secretsManager from 'aws-cdk-lib/aws-secretsmanager';

// ...

const mongoDbCredentials = secretsManager.Secret.fromSecretCompleteArn(
  this, 
  'MongoDbCredentials', 
  props.config.mongoDb.credentials.arn
);

4. 检查密钥的资源策略

如果us-east-1的密钥配置了资源策略,需确保策略允许us-west-2区域的账户或角色访问。示例资源策略:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::123456789012:role/UsWest2ServiceRole"
      },
      "Action": [
        "secretsmanager:GetSecretValue",
        "secretsmanager:DescribeSecret"
      ],
      "Resource": "*"
    }
  ]
}

将Principal中的ARN替换为us-west-2区域需要访问密钥的角色ARN。

5. 确认密钥状态

登录us-east-1区域的Secrets Manager控制台,检查目标密钥是否存在、未被删除,且未处于禁用状态。

内容的提问来源于stack exchange,提问作者Luzifer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.09 19:45:36