Amazon Resource Name(ARN)唯一标识 AWS 资源。当您需要在 AWS 全局环境中(比如 IAM policy、Amazon Relational Database Service (Amazon RDS) 标签和 API 调用中)明确指定一项资源时,我们要求使用 ARN。虽然应像任何识别信息一样谨慎使用和共享 ARN,但不应将其视为机密、敏感或保密信息。
ARN 格式
以下是 ARN 的一般格式。特定格式取决于资源。要使用 ARN,请将斜体
文本替换为特定于资源的信息。请注意,某些资源的 ARN 忽略了区域、账户 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 账户的作用域为一个分区。
以下是支持的分区:
-
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 中,资源标识符是一个对象名称,它可以包含正斜杠(/
)来形成路径。同样,IAM 用户名称和组名也可以包含路径。IAM 路径中只允许使用字母数字字符和以下字符:正斜杠(/
)、加号(+
)、等号(=
)、英文逗号(,
)、英文句号(.
)、at 符(@
)、下划线(_
)和连字符(-
)。
在路径中使用通配符
路径可以包含一个通配符,即星号 (*
)。某些策略元素允许使用通配符,而其他元素则不允许。您可以对 Resource 或 NotResource 元素使用通配符,但不能对 Principal 或 NotPrincipal 元素使用通配符。有关更多信息,请参阅 IAM JSON 策略参考。
您可以指定 role/*
来表示账户 123456789012 中的所有角色,如下例所示:
arn:aws:iam::123456789012:role/*
您也可以使用通配符结束资源名称。例如,您可以指定 service-*
来表示所有以 service
开头并以不同字符结尾的角色,如 service-role1
或 service-test
:
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 中的一个字符。例如,您可以将以下 ARN 用于名为 amzn-s3-demo-bucket 的 S3 存储桶中所有以四个字符开头并以 -test
结尾的文件夹。与此匹配的一些文件夹包括 1234-test
、2024-test
或 a100-test
。
arn:aws:s3:::amzn-s3-demo-bucket/????-test
您还可以在 ARN 的不同部分中使用通配符,以冒号“:
”分隔。在以下示例中,两个通配符用于匹配账户 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