The 22-year-old Poland international has signed a four-and-a-half-year contract with Arsenal with the option to extend for another year.
Mikel Arteta's side will pay £21m for Kiwior, who will provide competition for Gabriel Magalhaes at the left side of central defence.
Kiwior is Arsenal's second signing of the January transfer window after Leandro Trossard.
Kiwior has won nine caps for the Poland national team and played all their four games at the 2022 FIFA World Cup in Qatar.
On completing his move to north London, Kiwior said: "When I saw my name on an Arsenal shirt for the first time, I just laughed! I was so happy to see my name on the shirt of such a huge club. For me, it's an incredibly happy moment and the pinnacle to play for such a big club.
"I've always dreamt of playing in the Premier League. I knew it wouldn't be easy, and if I got the chance, then I knew I'd have to make the most of it because it was one of my biggest dreams. For me, it's the best league. I'm thrilled to be here.
"It's huge for me that Arsenal were interested and that I'm able to be here. I'm aware that Arsenal are a massive club in a top league, so I didn't really have to think about much else. I was just ecstatic and really wanted to come.
"I love passing the ball. I like teams that move the ball and try to create chances that way. So, I'm happy that I've come to a team like that."
Gunners sporting director Edu said: "We're delighted to have completed the signing of Jakub Kiwior. He's a young talent who we've been monitoring for a while now. We are now all looking forward to working with Jakub and seeing his continued development with us. We welcome Jakub to Arsenal."
Manager Arteta added: "It's great that Jakub is joining us. He's a young versatile defender who has shown huge potential and qualities with Spezia in Serie A, and also at international level with Poland.
"Jakub is a player who will give us strength and quality to our defensive unit. We welcome Jakub and his family to Arsenal and look forward to working with him."