下記のコードでCloudFormationでIAMグループを作成しました。
${aws:username}は、下記のリンクのIAM ポリシーエレメントのポリシー変数に使用可能なリクエスト情報を使いました。

AWS AccountIdの部分もリテラルではなく変数を使う方法はないでしょうか。

下記は試してみましたがいずれもだめでした。

Resource: "arn:aws:iam::${aws:userid}:user/${aws:username}"
ポリシー変数は、IAMユーザは、AWSアカウントではなく一意IDが返されるからかもしれませんが、確認方法がわかりませんでした。

Resource: !Sub "arn:aws:iam::${AWS::AccountId}:user/${aws:username}"
ClodFormationの疑似パラメータを使いましたが、ポリシー変数と同じ${}表記なので、エラーになりました。

Type: "AWS::IAM::Group"
Properties:
  GroupName: "Users"
  Policies:
    - PolicyName: group-user-policy
      PolicyDocument:
        Version: "2012-10-17"
        Statement:
          - Effect: Allow
            Action:
              - "iam:GetAccountPasswordPolicy"
            Resource: "*"
          - Effect: Allow
            Action:
              - "iam:ChangePassword"
            Resource: !Sub "arn:aws:iam::1234567890:user/${aws:username}"