Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 从AWS EKS中的服务帐户担任AWS角色_Python_Amazon Web Services_Boto3_Amazon Eks - Fatal编程技术网

Python 从AWS EKS中的服务帐户担任AWS角色

Python 从AWS EKS中的服务帐户担任AWS角色,python,amazon-web-services,boto3,amazon-eks,Python,Amazon Web Services,Boto3,Amazon Eks,当前设置:python应用程序在AWS EKS集群中作为Docker容器运行。AWS密钥在kubernetes集群中作为机密提供,以便python代码可以读取、初始化boto3会话并使用S3 bucket 我想如何更改它:假设Docker容器在AWS EKS集群中运行的serviceaccount角色,然后使用此凭据初始化boto3会话并使用S3 bucket。我不想为每个服务提供AWS密钥,因为我有很多密钥 有没有办法实现所需的配置 谢谢。简化的Kubernetes版本1.12 OIDC JS

当前设置:python应用程序在AWS EKS集群中作为Docker容器运行。AWS密钥在kubernetes集群中作为机密提供,以便python代码可以读取、初始化boto3会话并使用S3 bucket

我想如何更改它:假设Docker容器在AWS EKS集群中运行的serviceaccount角色,然后使用此凭据初始化boto3会话并使用S3 bucket。我不想为每个服务提供AWS密钥,因为我有很多密钥

有没有办法实现所需的配置


谢谢。

简化的Kubernetes版本1.12 OIDC JSON web令牌,Amazon EKS现在为每个集群托管一个公共OIDC发现端点,其中包含JSON web令牌的签名密钥,因此外部系统(如IAM)可以验证和接受Kubernetes颁发的OIDC令牌


美国焊接学会的指南位于:

github的AWS指南:


步骤如下所述

  • 获取OIDC提供程序URL:
    aws eks描述集群--名称集群\u名称--查询“cluster.identity.OIDC.issuer”--输出文本

  • 使用联合身份创建角色,并获取角色的ARN

  • 请记住,您需要在这里提到名称空间,确保您有名称为SERVICE\u ACCOUNT\u NAMESPACE的名称空间

  • 在kubernetes中创建服务帐户
  • 使用serviceaccount运行pod
  • 如果一切都做得好,你将能够在你的k8s吊舱中扮演这个角色

    参考:

    使用AWS的指南:。如果你有任何问题,在这里报告,我们可以看看。
    {
      "Version": "2012-10-17",
      "Statement": [
        {
          "Effect": "Allow",
          "Principal": {
            "Federated": "arn:aws:iam::AWS_ACCOUNT_ID:oidc-provider/OIDC_PROVIDER"
          },
          "Action": "sts:AssumeRoleWithWebIdentity",
          "Condition": {
            "StringEquals": {
              "OIDC_PROVIDER:sub": "system:serviceaccount:SERVICE_ACCOUNT_NAMESPACE:SERVICE_ACCOUNT_NAME"
            }
          }
        }
      ]
    }
    
    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: SERVICE_ACCOUNT_NAME
      annotations:
        eks.amazonaws.com/role-arn: ARN_OF_ABOVE_IAM_ROLE
    
    
    
    
    apiVersion: v1
    kind: Pod
    metadata:
      name: my-pod
    spec:
      serviceAccountName: SERVICE_ACCOUNT_NAME
      ...