[Документация Yandex Cloud](../../index.md) > [Yandex Object Storage](../index.md) > Управление доступом > Обзор

# Обзор способов управления доступом в Object Storage

В Object Storage реализовано несколько взаимосвязанных механизмов для управления доступом:
* [Yandex Identity and Access Management (IAM)](#iam).
* [Список управления доступом (ACL)](#acl).
* [Политика доступа (bucket policy)](#policy).
* [Публичный доступ](#anonymous).
* [Security Token Service](#sts).
* [Эфемерные ключи доступа](#ephemeral-keys).
* [Подписанные (pre-signed) URL](#pre-signed).
* [Сервисные подключения VPC (Private Endpoints)](#pe-vpc).

Также в Object Storage на доступ к бакетам и объектам может влиять включенное шифрование. Подробнее о работе с зашифрованными бакетами смотрите на странице [Шифрование в Object Storage](../concepts/encryption.md).

На схеме показана взаимосвязь механизмов управления доступом в Object Storage. {#scheme}

![access-scheme](../../_assets/storage/access-scheme.svg)

Алгоритм проверок:

1. _IAM_ и _ACL бакета_:
    * Если запрос прошел проверку _IAM_ **или** _ACL бакета_, проверяется настроена ли _политика доступа для бакета_.
    * Если запрос не прошел проверки _IAM_ **и** _ACL бакета_, проверяется включен ли _публичный доступ_ к бакету.
1. _Публичный доступ_:
    * Если публичный доступ на выполнение действия открыт, проверяется настроена ли _политика доступа для бакета_.
    * Если публичный доступ на выполнение действия закрыт, то применяется проверка доступа через _ACL объекта_.
1. _Политика доступа для бакета_:
    * Если политика доступа настроена:
      1. Если запрос подошел хотя бы под одно из правил `Deny` политики бакета, то применяется проверка доступа через _ACL объекта_.
      1. Если запрос подошел хотя бы под одно из правил `Allow` политики бакета, проверяется осуществлен ли доступ через _Security Token Service_.
      1. Если запрос не подошел ни под одно из правил политики бакета, то применяется проверка доступа через _ACL объекта_.
    * Если политика доступа не настроена, проверяется осуществлен ли доступ через _Security Token Service_.
1. _Security Token Service_:
    * Если запрос осуществлен с помощью Security Token Service:
      1. Если запрос подошел хотя бы под одно из правил `Deny` политики для временного ключа, то применяется проверка доступа через _ACL объекта_.
      1. Если запрос подошел хотя бы под одно из правил `Allow` политики для временного ключа, доступ будет разрешен.
      1. Если запрос не подошел ни под одно из правил политики для временного ключа, то применяется проверка доступа через _ACL объекта_.
    * Если запрос осуществлен напрямую, доступ будет разрешен.
1. _ACL объекта_:
    * Если запрос прошел проверку _ACL объекта_, доступ будет разрешен.
    * Если запрос не прошел проверку _ACL объекта_, доступ будет запрещен.

## Identity and Access Management {#iam}

[Identity and Access Management](index.md) — основной способ управления доступом в Yandex Cloud с помощью назначения ролей и [политик авторизации](../../iam/concepts/access-control/access-policies.md). Позволяет базово разграничить доступы, подробнее в разделе [Какие роли действуют в сервисе](index.md#roles-list).

Получатели доступа:
* аккаунт на Яндексе;
* [сервисный аккаунт](../../iam/concepts/users/service-accounts.md);
* [федеративный пользователь](../../iam/concepts/users/accounts.md#saml-federation);
* [локальный пользователь](../../iam/concepts/users/accounts.md#local)
* [системная группа](../../iam/concepts/access-control/system-group.md);
* [публичная группа](../../iam/concepts/access-control/public-group.md).

Доступ выдается на [облако](../../resource-manager/concepts/resources-hierarchy.md#cloud), [каталог](../../resource-manager/concepts/resources-hierarchy.md#folder) или [бакет](../concepts/bucket.md).

## Список управления доступом (ACL) {#acl}

[Список управления доступом (ACL)](acl.md) — перечень разрешений на выполнение действий, хранящийся непосредственно в Object Storage. Позволяет базово разграничить доступы. Разрешения ACL для бакетов и объектов отличаются, подробнее в разделе [Виды разрешений](acl.md#permissions-types).

{% note info %}

Если у вас нет необходимости разграничивать доступ к конкретным объектам, рекомендуем использовать Identity and Access Management.

{% endnote %}

Получатели доступа: 
* аккаунт на Яндексе;
* [сервисный аккаунт](../../iam/concepts/users/service-accounts.md);
* [федеративный пользователь](../../iam/concepts/users/accounts.md#saml-federation);
* [локальный пользователь](../../iam/concepts/users/accounts.md#local)
* [системная группа](../../iam/concepts/access-control/system-group.md);
* [публичная группа](../../iam/concepts/access-control/public-group.md).

Доступ выдается на [бакет](../concepts/bucket.md) или [объект](../concepts/object.md).

## Политика доступа (bucket policy) {#policy}

[Политика доступа (bucket policy)](policy.md) — перечень правил, запрещающих или разрешающих [действия](../s3/api-ref/policy/actions.md) при выполнении определенных [условий](../s3/api-ref/policy/conditions.md). Позволяет гранулярно разграничить доступы к бакетам, объектам и группам объектов.

Получатели доступа: 
* аккаунт на Яндексе;
* [сервисный аккаунт](../../iam/concepts/users/service-accounts.md);
* [федеративный пользователь](../../iam/concepts/users/accounts.md#saml-federation);
* [локальный пользователь](../../iam/concepts/users/accounts.md#local)
* анонимный пользователь.

Доступ выдается на [бакет](../concepts/bucket.md), [объект](../concepts/object.md) или группу объектов.

## Публичный доступ {#anonymous}

[Публичный доступ](public-access.md) — разрешения на доступ к чтению объектов, списка объектов и настроек бакета для анонимных пользователей.

Доступ выдается на [бакет](../concepts/bucket.md).

{% note warning %}

Публичный доступ предоставляется неограниченному кругу анонимных пользователей. Используйте его только в случае, когда нет возможности применить другие механизмы предоставления доступа.

{% endnote %}

## Security Token Service {#sts}

[Security Token Service](sts.md) — компонент сервиса Identity and Access Management для получения временных ключей доступа, совместимых с [AWS S3 API](../s3/index.md).

С помощью временных ключей вы можете гранулярно разграничить доступы в бакеты для множества пользователей, используя для этого всего один сервисный аккаунт.

## Эфемерные ключи доступа {#ephemeral-keys}

[Эфемерные ключи доступа](ephemeral-keys.md) — это временные учетные данные для аутентификации [аккаунтов на Яндексе](../../iam/concepts/users/accounts.md#passport), [федеративных аккаунтов](../../iam/concepts/users/accounts.md#saml-federation), [локальных пользователей](../../iam/concepts/users/accounts.md#local) и [сервисных аккаунтов](../../iam/concepts/users/service-accounts.md).


## Подписанные (pre-signed) URL {#pre-signed}

[Подписанные (pre-signed) URL](pre-signed-urls.md) — способ предоставления анонимным пользователям временного доступа к определенным действиям в Object Storage с помощью URL, содержащих в своих параметрах данные для авторизации запроса.

Доступ выдается на [бакет](../concepts/bucket.md) или [объект](../concepts/object.md).

## Сервисные подключения VPC (Private Endpoints) {#pe-vpc}

Вы можете организовать прямой доступ к бакетам Object Storage из облачных сетей VPC с помощью [сервисного подключения VPC](../../vpc/concepts/private-endpoint.md). При таком подключении сервис Object Storage будет доступен по [внутренним IP-адресам](../../vpc/concepts/address.md#internal-addresses) VPC без использования доступа в интернет.

В Object Storage есть возможность настроить бакет так, чтобы доступ в него был возможен только через сервисные подключения VPC. Предусмотрены следующие механизмы:
* **Ограничение доступа в бакет на уровне политики** — доступ в бакет разрешается из сервисных подключений VPC с идентификаторами, указанными в [политике](#policy). Однако, согласно [схеме](#scheme), все еще остается возможность доступа в бакет из публичной сети, например с помощью [ACL](#acl) объекта или при наличии другого разрешающего правила в политике. Также при такой настройке остается возможность [копирования объектов на стороне сервера (Server Side Copy)](../operations/objects/copy.md) в такой бакет и из него. Подробнее на странице [Настройте политику для доступа из сервисных подключений](../operations/buckets/access-via-vpc.md#setup-policy).
* **Ограничение доступа в бакет на уровне сервиса** — доступ в бакет разрешается только из сервисных подключений VPC. Нужно указать конкретные названия подключений. При этом доступ в бакет из публичной сети будет невозможен. Доступ в бакет с помощью [консоли управления](https://kz.console.yandex.cloud) можно включить отдельной опцией. Подробнее на странице [Настройте ограничение для доступа только из сервисных подключений](../operations/buckets/access-via-vpc.md#setup-service-restriction).

### Копирование объектов на стороне сервера (Server Side Copy) {#server-side-copy}

Особенности [копирования объектов на стороне сервера (Server Side Copy)](../operations/objects/copy.md) в бакетах с включенным доступом только из сервисных подключений VPC приведены в таблице:

Бакет-источник | Бакет-приемник | Условие для запуска копирования на стороне сервера^1^
--- | --- | ---
Доступ только из сервисных подключений VPC | Доступ только из сервисных подключений VPC | Запрос из сервисного подключения, которое указано в списке разрешенных для обоих бакетов
Доступ только из сервисных подключений VPC | Доступ из публичной сети | Запрос из сервисного подключения, которое указано в списке разрешенных для бакета-источника
Доступ из публичной сети | Доступ только из сервисных подключений VPC | Запрос из сервисного подключения, которое указано в списке разрешенных для бакета-приемника
Доступ из публичной сети | Доступ из публичной сети | Запрос из публичной сети или из сервисного подключения

^1^ При наличии у клиента прав на чтение из бакета-источника и запись в бакет-приемник.

## Полезные ссылки {#see-also}

* [Настройка прав доступа к бакету с помощью Identity and Access Management](../operations/buckets/iam-access.md)
* [Редактирование ACL бакета](../operations/buckets/edit-acl.md)
* [Редактирование ACL объекта](../operations/objects/edit-acl.md)
* [Управление политикой доступа (bucket policy)](../operations/buckets/policy.md)
* [Настройка публичного доступа к бакету](../operations/buckets/bucket-availability.md)
* [Доступ в бакет с помощью Security Token Service](../operations/buckets/create-sts-key.md)
* [Доступ в бакет с помощью сервисного подключения из Yandex Virtual Private Cloud](../operations/buckets/access-via-vpc.md)