Edited at

AWS S3で使われるcanonical user IDの調べ方

異なるAWSアカウントへS3のアクセス権限を付与するとき、権限を与える先のcanonical user ID(正規ユーザー ID)が必要になることがあります。12桁のアカウントID 1234-5678-9012 は容易に調べることができますが、canonical user ID(64桁の16進数)は少し面倒だったので手順をメモしておきます。


rootアカウントが利用可能な場合

Your Security Credentialsのページを開き、Account identifiers の左にある「+」をクリックして展開するとそこに表示されます。

aws-account-id.png


IAMユーザしか使えない場合

公式にはIAMユーザはマネジメントコンソールから確認することはできないことになっています。


AWSマネジメントコンソールから確認する

何か任意のS3のバケットのアクセス権限を参照可能であれば、マネジメントコンソールから確認することができます。適当なバケットを開き、そのPermissionsタブを開くとAccount列にIDが表示されます(下記画像の黒字部分)。

s3-permissions.png


AWS CLIから調べる方法(公式の方法)

公式には、IAMユーザはAPIまたはCLIから確認するよう案内されており、CLIで確認することもできます

aws configureは済んでいてアクセス可能な状態とします)。

$ aws --version

aws-cli/1.15.41 Python/2.7.15rc1 Linux/4.4.0-17134-Microsoft botocore/1.10.41
$ aws s3api list-buckets | jq -r .Owner.ID
1234…(略:64桁の16進数)