There is a parameter named “public” where you can set if you want the custom post type to be private or public
add_action( 'init', 'create_post_type' );
function create_post_type() {
register_post_type( 'acme_product',
array(
'labels' => array(
'name' => __( 'Products' ),
'singular_name' => __( 'Product' )
),
'public' => false,
'has_archive' => true,
)
);
}