Создать ключ доступа
Для работы с Object Storage через S3 API необходим ключ доступа. Ключи доступа создаются через Identity and Access Management с использованием сервисных аккаунтов.
Перед началом работы
-
Создайте сервисный аккаунт в проекте:
kubectl create serviceaccount <имя_сервисного_аккаунта> -n <название_проекта> -
Назначьте сервисному аккаунту роль
storage.editorдля доступа к бакетам:apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: AccessBinding metadata: name: <имя_сервисного_аккаунта>-storage-access namespace: <название_проекта> spec: roleID: storage.editor subject: kind: ServiceAccount name: <имя_сервисного_аккаунта> namespace: <название_проекта>Сохраните манифест в файл
access-binding.yamlи примените его:kubectl apply -f access-binding.yaml -
Создайте статический ключ доступа для сервисного аккаунта:
apiVersion: iam.stackland.yandex.cloud/v1alpha1 kind: APIKey metadata: name: <имя_сервисного_аккаунта>-s3-key namespace: <название_проекта> spec: serviceAccountRef: name: <имя_сервисного_аккаунта> secretName: <имя_сервисного_аккаунта>-s3-credentialsСохраните манифест в файл
api-key.yamlи примените его:kubectl apply -f api-key.yaml -
Получите ключ доступа и секретный ключ из созданного секрета:
export AWS_ACCESS_KEY_ID=$(kubectl get secret -n <название_проекта> <имя_сервисного_аккаунта>-s3-credentials -o jsonpath='{.data.accessKeyId}' | base64 -d) export AWS_SECRET_ACCESS_KEY=$(kubectl get secret -n <название_проекта> <имя_сервисного_аккаунта>-s3-credentials -o jsonpath='{.data.secretAccessKey}' | base64 -d) -
Проверьте подключение к Object Storage:
export CLUSTER_DOMAIN=$(kubectl get platformenvironments main -o jsonpath='{.status.clusterDomain}') aws --endpoint-url=https://storage.sys.$CLUSTER_DOMAIN s3 ls
-
Если вы еще не открыли проект, выберите проект.
-
В левом меню выберите Сервисные аккаунты.
-
Нажмите Создать сервисный аккаунт.
-
Укажите имя сервисного аккаунта и нажмите Создать.
-
Выберите созданный сервисный аккаунт.
-
Перейдите на вкладку Ключи доступа.
-
Нажмите Создать ключ.
-
Сохраните Access Key ID и Secret Access Key.
Важно
Секретный ключ отображается только один раз. Сохраните его в надежном месте.
-
Назначьте сервисному аккаунту роль
storage.editor:- Перейдите в раздел Права доступа проекта.
- Нажмите Назначить роль.
- Выберите роль
storage.editor. - В качестве субъекта выберите созданный сервисный аккаунт.
- Нажмите Назначить.
Доступные роли
storage.viewer— позволяет читать объекты и получать список бакетов.storage.editor— позволяет читать, создавать, изменять и удалять объекты.storage.admin— полный доступ к Object Storage, включая управление настройками бакетов.
Что дальше
- Узнайте больше об управлении доступом в Object Storage.
- Ознакомьтесь с документацией Identity and Access Management.