This answer may be helpful.
A local secondary index functions like an alternate range key...whether querying the table's main hash key/range key combo or the hash key/local secondary index, you must specify a hash key (think of DynamoDB as a big hash table...impossible to look things up without a hash key).
From the DynamoDB Secondary Index Documentation (emphasis mine):
Local secondary index — an index that has the same hash key as the table, but a different range key. A local secondary index is "local" in the sense that every partition of a local secondary index is scoped to a table partition that has the same hash key.
If you want to query by some other attribute in the table that is not the table's main hash key, you'll need to make a global secondary index, which is more like an alternate table hash key. Unfortunately, you can specify indexes only at creation time, and cannot modify them, so you may need to migrate your tables.