アカウント①(111111111111)がアカウント②(999999999999)に対してPush/Pullする場合。
アカウント①のIAMの設定
まず、Pushする側のアカウント①のIAMに対してECRの操作に必要な権限 を付与する。
これは、アカウント②のECRリポジトリの権限とは別に必要なので注意。
※MiamでRoleに権限を付与した場合の例を示す
# アカウント①(111111111111)
role "DockerPusher", :path=>"/" do
  instance_profiles(
    "DockerPusher"
  )
  assume_role_policy_document do
    {"Version"=>"2012-10-17",
     "Statement"=>
      [{"Effect"=>"Allow",
        "Principal"=>{"Service"=>"ec2.amazonaws.com"},
        "Action"=>"sts:AssumeRole"}]}
  end
  # 今回はECRの権限を AmazonEC2ContainerRegistryPowerUser で付与する
  attached_managed_policies(
    "arn:aws:iam::aws:policy/AmazonEC2ContainerRegistryPowerUser"
  )
end
アカウント②のECRリポジトリポリシーを設定する
ECRはS3のバケットポリシーのようにリポジトリごとにポリシーを設定することができ
http://docs.aws.amazon.com/AmazonECR/latest/userguide/RepositoryPolicyExamples.html
他のアカウントに対して操作権限を付与することができる。
アカウント②のECRリポジトリに対して、アカウント①のDockerPusherロールからPush/Pull可能なポリシーをセットする。
// アカウント②(999999999999)
{
    "Version": "2008-10-17",
    "Statement": [
        {
            "Sid": "AllowPushPull",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::111111111111:role/DockerPusher"
            },
            "Action": [
                "ecr:GetDownloadUrlForLayer",
                "ecr:BatchGetImage",
                "ecr:BatchCheckLayerAvailability",
                "ecr:PutImage",
                "ecr:InitiateLayerUpload",
                "ecr:UploadLayerPart",
                "ecr:CompleteLayerUpload"
            ]
        }
    ]
}
リポジトリのポリシーの操作はコンソールから行うことができるが、他のAWSアカウントに権限を付与する場合 rootしか指定できない ので、ロールを個別に指定する場合は以下のようにCLIでポリシーをセットする必要がある。
aws ecr set-repository-policy --repository-name webrick --policy-text file://policy.json --region us-east-1
アカウント①でDockerの操作
アカウント①のDockerPusherロールでは、以下のようにdocker loginを実行することで、Push/Pullすることができる。
# アカウント②のレジストリID(アカウント番号)を指定してログイン
$(aws ecr get-login --registry-ids 999999999999 --region us-east-1)
# あとは普通にPush/Pull
docker push 999999999999.dkr.ecr.us-east-1.amazonaws.com/webrick:latest
docker pull 999999999999.dkr.ecr.us-east-1.amazonaws.com/webrick:latest
おまけ
ECRリポジトリを管理するツールを作りました。
https://github.com/winebarrel/repol