In Terraform, you define resources using blocks that start with the keyword 'resource'. Each resource block requires a resource type, which tells Terraform what kind of cloud resource to create, such as an AWS S3 bucket. Next, you assign a resource name, which is a local identifier used within your Terraform code to refer to that resource. Inside the block, you specify properties that configure the resource, like the bucket name and access control list for an S3 bucket. Terraform reads these definitions step-by-step: it first identifies the resource type, then the resource name, then reads the properties. After parsing, Terraform plans the resource creation and then applies it, creating the actual resource in the cloud. Resource names must be unique within the same type to avoid confusion. This process ensures your infrastructure is defined clearly and managed effectively.