In this paper, a sparse Kronecker-product (SKP) coding scheme is proposed for unsourced multiple access. Specifically, the data of each active user is encoded as the Kronecker product of two component codewords with one being sparse and the other being forward-error-correction (FEC) coded. At the receiver, an iterative decoding algorithm is developed, consisting of matrix factorization for the decomposition of the Kronecker product and soft-in soft-out decoding for the component sparse code and the FEC code. The cyclic redundancy check (CRC) aided interference cancelation technique is further incorporated for performance improvement. Numerical results show that the proposed scheme outperforms the state-of-the-art counterparts, and approaches the random coding bound within a gap of only 0.1 dB at the code length of 30000 when the number of active users is less than 75, and the error rate can be made much lower than the existing schemes, especially when the number of active users is relatively large.