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

能否借助K8s服务账户IAM角色实现Couchbase备份至AWS S3?

在EKS中用IAM角色元数据认证实现Couchbase备份到S3(无需AWS密钥Secret)

我正在AWS EKS集群中配置Couchbase企业版集群备份到AWS S3,参考官方文档时发现,文档既提到需要存储AWS用户密钥的Kubernetes Secret,又说明绑定IAM角色的备份服务账户已足够,这让我很困惑。想确认是否可以通过AWS角色的元数据认证,完全避免创建AWS用户及存储相关密钥的Secret?我的配置示例如下:

apiVersion: couchbase.com/v2
kind: CouchbaseBackup
metadata:
   name: couchbase-backup-fulls3
   namespace: couchbase
spec:
  strategy: immediate_full
  size: 100Gi
  storageClassName: couchbase-backup-sc
  ephemeralVolume: true
  services:
    data: True
    bucketConfig: True
  objectStore:
    useIAM: true
    #secret: s3-region-secret <----- 想去掉这个?
    uri: s3://couchbase-backup-<environment>

完全可以通过AWS IAM角色的元数据认证来实现,不需要创建AWS用户和对应的Secret,核心是利用EKS的**IRSA(IAM Roles for Service Accounts)**功能,让Couchbase备份服务账户直接通过IAM角色获取S3访问权限。具体配置步骤如下:

  • 第一步:创建具备S3备份权限的IAM角色
    创建一个IAM角色,为其添加针对目标S3备份桶的权限策略,至少需要以下权限:

    • s3:ListBucket(列出桶内容)
    • s3:GetObject(读取备份对象)
    • s3:PutObject(上传备份)
    • s3:DeleteObject(清理旧备份,按需配置)
      确保该角色的信任策略允许EKS集群的OIDC身份提供商进行AssumeRole操作。
  • 第二步:创建绑定IAM角色的Kubernetes服务账户
    在Couchbase所在的命名空间下创建ServiceAccount,通过注解关联刚才创建的IAM角色ARN,示例:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: couchbase-backup-sa
  namespace: couchbase
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT_ID:role/COUCHBASE_BACKUP_ROLE
  • 第三步:修正CouchbaseBackup配置
    在你的CouchbaseBackup资源中,添加serviceAccountName字段指定刚才创建的服务账户,同时确保objectStore.useIAM设为true,直接移除secret字段即可。修正后的完整配置:
apiVersion: couchbase.com/v2
kind: CouchbaseBackup
metadata:
  name: couchbase-backup-fulls3
  namespace: couchbase
spec:
  strategy: immediate_full
  size: 100Gi
  storageClassName: couchbase-backup-sc
  ephemeralVolume: true
  serviceAccountName: couchbase-backup-sa # 指定绑定IAM角色的服务账户
  services:
    data: true
    bucketConfig: true
  objectStore:
    useIAM: true
    uri: s3://couchbase-backup-<environment>
  • 第四步:验证配置生效
    部署修正后的CouchbaseBackup资源后,查看备份Pod的日志,确认没有出现权限相关错误,同时检查S3桶中是否生成了备份文件,即可验证元数据认证是否正常工作。

注意事项:

  • 确保你的Couchbase Operator版本支持IRSA功能(建议使用v2.2及以上版本)
  • 目标S3桶的区域要和EKS集群所在区域匹配,或者在URI中通过?region=xxx指定区域(如果跨区域)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 04:33:41