使用aws cli获取S3 Bucket的ARN

ljc*_*iff 53 amazon-s3 amazon-web-services aws-cli

是否可以通过AWS命令行获取S3存储桶的ARN?

我已经通过了文档看起来aws s3api ...aws s3 ...和还没有找到一种方法来做到这一点.

Ser*_*lev 118

它始终是arn:aws:s3:::NAME-OF-YOUR-BUCKET.如果您知道存储桶的名称,就知道ARN.无需从任何地方"获取"它.

  • @ljcundiff ARN是一种非透明的,可构造的标识符,显然是设计的.它们根本不可能改变[有关S3 ARN格式的文档规则](http://docs.aws.amazon.com/AmazonS3/latest/dev/s3-arn-format.html).`cn-north-1`区域是特殊情况,就像GovCloud一样,因为它们完全被全局`aws`分区封锁,不能使用相同的密钥集访问.如果您在多个分区中工作,则必须知道要处理的是哪个分区. (6认同)
  • 可能为什么您的AWS S3存储桶名称必须是全局唯一的; 但是以这种方式将这些结合在一起是一个可怕的疣.将帐户ID插入该ARN会好得多.:( (4认同)
  • 希望有一种方法可以做到这一点,而无需对 ARN 格式做出任何假设。cn-north-1 区域中的存储桶是 arn:aws-cn:s3::BUCKET_NAME,我希望避免“知道”亚马逊如何分配 ARN,以防亚马逊更改规则。 (4认同)
  • 某些 S3 api 不支持此 ARN,例如:`aws s3api get-bucket-acl --bucket arn:aws:s3:::mybucket` 将返回存储桶名称错误,抱怨它与正则表达式之一不匹配:`< ...> 或者是与正则表达式“^arn:(aws).*:s3:[az\-0-9]+:[0-9]{12}:accesspoint[/:][a- 匹配的 ARN zA-Z0-9\-]{1,63}$|^arn:(aws).*:s3-前哨:[az\-0-9]+:[0-9]{12}:前哨[/ :][a-zA-Z0-9\-]{1,63}[/:]接入点[/:][a-zA-Z0-9\-]{1,63}$"` (2认同)

小智 9

您也可以通过使用s3管理控制台上的对勾标记来选择S3存储桶ARN,这将弹出一个侧边栏。在哪里可以复制您的S3存储桶ARN。具有存储桶ARN的S3管理控制台


小智 5

aws 文章详细说明了 arn 格式,但从未说去这里查看它。突出显示我的 s3 存储桶并看到Copy Bucket ARN让我在几个小时内保持理智。

  • 您的答案比关于此主题的 aws 文档更有帮助,后者无休止地谈论*存储桶 ARN,但如果您只是想复制它,实际上并不会告诉您该去哪里 (2认同)