# Why keras Conv2D makes convolution over volume?

I have a very basic question, but I couldn't get the idea about 2D convolution in Keras. If I would create a model like this :

model = tf.keras.Sequential([tf.keras.layers.ZeroPadding2D(padding=(3,3), input_shape=(64,64,3)),
tf.keras.layers.Conv2D(filters=1, kernel_size=(7,7))])


why the output shape is (None, 64, 64, 1) :

Layer (type)                 Output Shape              Param #
=================================================================
_________________________________________________________________
conv2d_67 (Conv2D)           (None, 64, 64, 1)         148
=================================================================
Total params: 148
Trainable params: 148
Non-trainable params: 0


and not (None, 64, 64, 3) with 148 parameters?
As far as I understand, the 2D convolution is not a volume convolution, the window is a 2D-matrix, but not a 3D-cube, so could somebody please explain why do I have 64, 64, 1 instead of 64, 64, 3?