Python 从AWS EKS中的服务帐户担任AWS角色
当前设置:python应用程序在AWS EKS集群中作为Docker容器运行。AWS密钥在kubernetes集群中作为机密提供,以便python代码可以读取、初始化boto3会话并使用S3 bucket 我想如何更改它:假设Docker容器在AWS EKS集群中运行的serviceaccount角色,然后使用此凭据初始化boto3会话并使用S3 bucket。我不想为每个服务提供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
谢谢。简化的Kubernetes版本1.12 OIDC JSON web令牌,Amazon EKS现在为每个集群托管一个公共OIDC发现端点,其中包含JSON web令牌的签名密钥,因此外部系统(如IAM)可以验证和接受Kubernetes颁发的OIDC令牌
美国焊接学会的指南位于: github的AWS指南:
步骤如下所述
aws eks描述集群--名称集群\u名称--查询“cluster.identity.OIDC.issuer”--输出文本
{
"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
...