資格勉強向けにARNの構文をメモ
Amazon ARN
基本形式
arn:partition:service:region:account-id:resource
arn:partition:service:region:account-id:resourcetype/resource
arn:partition:service:region:account-id:resourcetype:resource
- パーティション: 基本的にAWS
- サービス: AWS製品名
- リージョン: リソースがあるリージョン。リージョン関係ないものは省かれている
- リソース,リソースタイプ: サービスによって異なる。スラッシュやコロンなどで書いてある
覚え方
アランとパーティでサービス受けたらリケジョにアカンと(リ)ソースかけられた。
EC2構文例
arn:aws:ec2:region:account-id:instance/instance-id
arn:aws:ec2:region:account-id:volume/volume-id
例
arn:aws:ec2:us-east-1::image/ami-1a2b3c4d
アカウントが省略されて::となる。
arn:aws:ec2:us-east-1:123456789012:instance/*
S3構文例
arn:aws:s3:::bucket_name
arn:aws:s3:::bucket_name/key_name
s3はリージョン、アカウントは不要。故にバケット名が一意である必要があるのか
S3例
arn:aws:s3:::my_corporate_bucket/*
ポリシーのARNを指定する場合は、ワイルドカード「*」文字を使用できる。
RDS構文例
arn:aws:rds:region:account-id:db:db-instance-name
arn:aws:rds:region:account-id:cluster:db-cluster-name
AWSCLI,RDS APIを使用する時に使う。その際にはタグと共に使用する。
AWS サービスの名前空間
AWSサービスの識別をNamespaceを使用して AWSのサービスを識別する。
IAMポリシーを作る時などにアクションとリソースを識別するときに使用する。
そういえば関係ないけどサービス名のプレフィックスでAmazonとAWSの違いは
- Amazon: 単体のサービスとして利用出来る。
- AWS: 他のAWSのサービスと組み合わせて利用する。
と,どこかで聞いた気がする。公式のどこかに書いてあったけな?