A permission never reaches a resource except through a role.
Four precise terms — load-bearing for the rest of this chapter.
PermissionOne allowed API operation
RoleNamed bundle of permissions
PrincipalWho's being granted access
PolicyThe binding: role → principal → resource
GCP evaluates effective permissions as the union of every applicable binding — no explicit-deny-wins default. A separate Deny policy mechanism exists specifically for when you need to block access regardless of an allow policy elsewhere.