Amazon 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 の左にある「+」をクリックして展開するとそこに表示されます。

f:id:translucens:20200326014036p:plain
Account identifiers に Canonical User IDが表示される

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

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

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

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

f:id:translucens:20200326014144p:plain
AWSコンソールのS3のパーミッションタブにもCanonical User IDは表示される

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進数)