如何从 AKS 集群访问 AWS s3 存储桶

问题描述 投票:0回答:2

我有一些在 AKS 集群中运行的 pod,它们正在尝试访问 AWS s3 存储桶(由于当前的架构,使用 azure blob 不是一个选项)。我已阅读过有关 Kubernetes 服务帐户的 IAM 角色 的内容,但其中提到了 EKS clsuters。这里有什么办法吗?我们可以在 AKS 中创建一个具有 IAM 角色的服务帐户来访问 AWS 中的 s3 存储桶(可能在不同的位置)

kubernetes amazon-s3 amazon-iam amazon-eks azure-aks
2个回答
0
投票

听起来,具有身份联合的工作负载身份可能适合您的场景。

我们的想法是在 AKS 上启用 OIDC 功能标志,然后在 AKS Kubernetes 服务帐户和 AWS 之间创建联合身份信任。

也许thisthis文章会指导您。


0
投票

可以在不涉及 Cognito 的情况下解决问题。您需要设置以下内容:

  1. AKS OIDC 发行人
  2. AWS OIDC 提供商
  3. 启用工作负载身份

所以它的工作原理如下:当您在 AWS 中创建 OIDC 提供商时,您将 AKS 集群颁发者 URL 放在那里。然后您只需创建一个具有如下信任策略的角色:

{ "版本": "2012-10-17", “陈述”: [ { "效果": "允许", “主要的”: { “联合”:“arn:aws:iam :: MYACCOUNT:oidc-provider/southcentralus.oic.prod-aks.azure.com/something/something/” }, "Action": "sts:AssumeRoleWithWebIdentity", “健康)状况”: { “字符串等于”:{ “southcentralus.oic.prod-aks.azure.com/something/something/:sub”:“系统:serviceaccount:AKS_NAMESPACE:AKS_SERVICE_ACCOUNT” } } } ] }

因此“Federated”和“StringEquals”包含 AKS OIDC 颁发者 URL。

测试一下:

如果 POD 的工作负载身份注释工作正常 - 变异 webhook 将在 pod 内注入一个令牌(您可以使用“env | grep azure -i”找到路径)

然后只需安装 AWS CLI,并使用此令牌运行 Should-role-with-web-identity

© www.soinside.com 2019 - 2024. All rights reserved.