Что такое имя ресурса Amazon (ARN) и как его найти?
AWS использует имена ресурсов Amazon (ARN) для многих целей, в том числе в системе разрешений IAM, где они используются для внесения в белый список доступа к определенным ресурсам AWS, а не для предоставления доступа в масштабах всего сервиса. Как правило, они представляют собой уникальный идентификатор для любой службы на уровне учетной записи.
Что делает ARN?
ARN имеют предопределенный формат, поэтому, даже если в консоли нет списка ARN для определенного ресурса, вы, вероятно, можете создать его вручную. Общий формат для них
arn:partition:service:region:account-id:resource-id arn:partition:service:region:account-id:resource-type/resource-id arn:partition:service:region:account-id:resource-type:resource-id
partition
: AWS разделен на три физически разделенных региона: Public (aws
), GovCloud (aws-us-gov
) и Китай (aws-cn
). Почти наверняка вы используете общедоступный раздел, поэтому это значение всегда будет «aws
».service
: имя службы, которой принадлежит ресурс (s3
,ec2
и т. д.)region
: регион, в котором находится ресурс (us-east-1
,us-west-2
и т. д.). Обратите внимание, что это не зона доступности, и для некоторых ресурсов ее можно оставить пустойaccount-id
: идентификатор вашего личного аккаунтаресурс
: зависит от сервиса. Для таких сервисов, как S3, это можно сделать просто по идентификатору объекта (например, имени корзины S3). Для других служб это можно разделить по типу ресурса и идентификатору (например,instance/i-12345678
).
Каждая услуга может иметь другой формат для последней части. К счастью, AWS подробно документирует это, и вы можете найти точный формат для ресурса, который ищете, в их документации. Обычно это имя типа ресурса (экземпляр
, группа безопасности
, моментальный снимок
), за которым следует общий идентификатор ресурса. , который обычно виден в описании этого ресурса.
Как найти свой ARN
Для некоторых сервисов ARN легко доступен на информационной странице ресурса. Найдите что-нибудь, начинающееся с arn:aws:
. Для S3 ARN легко доступен и копируется с информационной боковой панели:
Для других сервисов (в частности, EC2) ARN вообще не отображается. Для экземпляра EC2 формат следующий:
arn:${Partition}:ec2:${Region}:${Account}:instance/${InstanceId}
Если вы работаете из командной строки, ARN должен быть создан вручную таким образом. Точный формат можно найти в документации.
Однако, если у вас есть доступ к консоли, мастер может вам помочь. В консоли управления IAM перейдите на вкладку «Политики» и нажмите «Создать политику». Выберите сервис AWS, которому принадлежит ресурс, затем выберите «Все действия» на вкладке «Действия»:
На вкладке ресурсов вы увидите список всех возможных ресурсов с ARN. Например, если вы хотите создать ARN определенного сетевого интерфейса, выберите «Добавить ARN» в разделе network-interface
:
Теперь вы должны выбрать регион и общий идентификатор ресурса, который обычно гораздо более доступен. В этом случае идентификатор сетевого интерфейса можно просмотреть на вкладке «Сетевые интерфейсы» в консоли EC2.
Введите информацию, и ARN должен быть создан для вас. Вы можете выйти из мастера, когда закончите, так как на самом деле вы не хотите сохранять политику.