Как получить временные учетные данные IAM в kubernetes.yaml? - PullRequest
0 голосов
/ 04 апреля 2020

Это приложение отлично работает, когда я передаю свои временные AWS учетные данные, как показано. Очевидно, это не лучшая практика. Как программно получить учетные данные из роли IAM? Можно ли как-нибудь запустить aws sts accept-role из kubernetes.yaml? Предположим, у меня нет доступа к базе кода для использования DefaultAWSCredentialsProviderChain.

---
apiVersion: v1
kind: Namespace
metadata:
  name: test
  annotations:
    iam.amazonaws.com/permitted: ".*"

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: application
  labels:
    app: application
  namespace: test
spec:
  replicas: 1
  selector:
    matchLabels:
      app: application
  template:
    metadata:
      annotations:
        iam.amazonaws.com/role: Role
        awsRegion: us-east-1
      labels:
        app: application
    spec:
      containers:
        - image: xxxxxx.dkr.ecr.us-east-1.amazonaws.com/xxxx:latest
          imagePullPolicy: Always
          name: application
          ports:
            - containerPort: 8080
          env:
            - name: NUM_OF_DAYS
              value: "1"
            - name: NUM_OF_THREADS
              value: "24"
            - name: AWS_ACCESS_KEY_ID
              value: xxxxx
            - name: AWS_SECRET_ACCESS_KEY
              value: xxxxx
            - name: AWS_SESSION_TOKEN
              value: xxxxxx
          resources:
            requests:
              cpu: 100m
              memory: 1Gi
            limits:
              memory: 1Gi

1 Ответ

0 голосов
/ 04 апреля 2020

Нет, это не особенность Кубернетеса. И был бы неработоспособен, если бы это было так, поскольку env vars можно установить только при запуске, а учетные данные роли со временем меняются. Вы можете написать обертку для своей программы, которая устанавливает вещи в env vars, но для этого нужно будет перезапустить подпроцесс при ротации.

...