Amazon リソースネーム (ARN) は、AWS リソースを一意に識別します。IAM ポリシー、Amazon Relational Database Service (Amazon RDS) タグ、API コールなど、すべての AWS 全体でリソースを明確に指定する必要がある場合は ARN が必要になります。ARN は、他の識別情報と同様に、慎重に使用および共有する必要がありますが、秘密情報、センシティブ情報、または機密情報とは見なされません。
ARN 形式
ARN の一般的な形式を次に示します。具体的な形式は、リソースによって異なります。ARN を使用するには、italicized
のテキスト (arn 以外のすべて) をリソース固有の情報に置き換えます。一部のリソースの ARN では、リージョン、アカウント ID、または、リージョンとアカウント ID の両方が省略されていることに注意してください。
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 リージョンのグループです。各 AWS アカウントのスコープは 1 つのパーティションです。
サポートされているパーティションは以下のとおりです。
-
aws
- AWS リージョン -
aws-cn
- 中国リージョン -
aws-us-gov
- AWS GovCloud (US) リージョン
-
service
-
AWS 製品を識別するサービス名前空間。
region
-
リージョンコード。たとえば、米国東部 (オハイオ) の場合は、
us-east-2
を使用します。リージョンコードの一覧については、「AWS 全般のリファレンス」の「リージョンエンドポイント」を参照してください。 account-id
-
リソースを所有しておりハイフンがない AWS アカウントの ID。例えば、
123456789012
と指定します。 resource-type
-
リソースタイプ。たとえば、
vpc
は仮想プライベートクラウド (VPC) 用です。 resource-id
-
リソース識別子。これはリソースの名前、リソースの ID、またはリソースパスです。一部のリソース識別子には、親リソース (sub-resource-type/parent-resource/sub-resource) またはバージョン (resource-type:resource-name:qualifier) などの修飾子が含まれます。
例
- IAM ユーザー
-
arn:aws:iam::
123456789012
:user/johndoe
- SNS トピック
-
arn:aws:sns:
us-east-1
:123456789012
:example-sns-topic-name
- VPC
-
arn:aws:ec2:
us-east-1
:123456789012
:vpc/vpc-0e9801d129EXAMPLE
リソースの ARN 形式を検索する
ARN の正確な形式は、サービスとリソースのタイプによって異なります。一部のリソース ARN には、パス、変数、またはワイルドカードを含めることができます。特定の AWS リソースの ARN 形式を検索するには、「サービス認可リファレンス」を開き、サービスのページを開いて、リソースタイプの形式を表示します。
ARN のパス
リソース ARN にはパスを含めることができます。たとえば Amazon S3 では、リソース ID はスラッシュ (/
) を挿入してパスを作成することができるオブジェクト名です。同様に、IAM ユーザー名とグループ名にはパスを含めることができます。IAM パスに使用できる文字は、英数字と、スラッシュ (/
)、プラス記号 (+
)、等号 (=
)、カンマ (,
)、ピリオド (.
)、アットマーク (@
)、アンダースコア (_
)、ハイフン (-
) のみです。
パスでのワイルドカードの使用
パスには、ワイルドカード文字、アスタリスク (*
) を含めることができます。ワイルドカードを許可するポリシー要素があれば、許可しないポリシー要素もあります。Resource 要素または NotResource 要素にはワイルドカードを使用できますが、Principal 要素または NotPrincipal 要素には使用できません。詳細については、「IAM JSON ポリシーリファレンス」を参照してください。
次の例のように、123456789012 アカウントのすべてのロールを意味するように role/*
を指定できます。
arn:aws:iam::123456789012:role/*
ワイルドカードでリソース名を終了することもできます。例えば、service
で始まって service-role1
または service-test
のような異なる文字で終わるすべてのロールを意味するように service-*
を指定できます。
arn:aws:iam::123456789012:role/service-*
次の例では、パスが含まれるリソース名の Amazon S3 バケットにあるオブジェクトの ARN が示されます。プレフィックスとは関係なく、ARN arn:aws:s3:::amzn-s3-demo-bucket/*
はそのバケット内のすべてのオブジェクトを対象とします。ARN arn:aws:s3:::amzn-s3-demo-bucket/
は、Development
/*/Development/
プレフィックス内で作成されたすべてのオブジェクトを対象とします。
?
ワイルドカード文字を使用して ARN で 1 文字を指定することもできます。例えば、amzn-s3-demo-bucket という名前の S3 バケットで 4 文字で始まり、-test
で終わるすべてのフォルダに次の ARN を使用できます。これと一致する一部のフォルダには 1234-test
、2024-test
、a100-test
などがあります。
arn:aws:s3:::amzn-s3-demo-bucket/????-test
ARN のさまざまなセクションでワイルドカードを使用することもでき、コロン「:
」で区切ります。次の例では、2 つのワイルドカードが使用され、アカウント 123456789012 のすべてのリージョンにおけるアプリケーション内のすべての Amazon Q アプリケーションおよびリソースと一致します。
arn:aws:qbusiness:*
:123456789012:*
同様に、次の例ではアカウント 123456789012 のすべてのリージョンにおけるすべての Amazon VPC と一致します。
arn:aws:ec2:*
:123456789012:vpc/*
次の例では、アカウント 123456789012 のすべてのリージョンにおけるすべての Amazon EBS ボリュームと一致します。
arn:aws:ec2:*
:123456789012:volume/*
ARN 内でのワイルドカード使用に関する制限
リソースタイプを指定する ARN の部分では、ワイルドカードを使用することはできません。リソースタイプ内にワイルドカードを含む次の ARN の例は無効です。
arn:aws:lambda:us-east-2:123456789012:functi*
:my-function <== not allowed
プレフィックス ARN でワイルドカードを使用したり、ARN のパーティションセクションでワイルドカードを含めたりすることもできません。
arn:aws:redshift:us-east-1:123456789012:?
<== not allowed