add EnforcementMode to RbacConfig (#623)

* add EnforcementMode to RbacConfig

* add more comment

* add more comment
This commit is contained in:
Quanjie Lin 2018-08-28 11:19:58 -07:00 committed by istio-bot
parent 2198cccdc2
commit d962948103
2 changed files with 88 additions and 38 deletions

View File

@ -410,6 +410,13 @@ type RbacConfig struct {
// A list of services or namespaces that should not be enforced by Istio RBAC policies. Note: This field have
// effect only when mode is ON_WITH_EXCLUSION and will be ignored for any other modes.
Exclusion *RbacConfig_Target `protobuf:"bytes,3,opt,name=exclusion" json:"exclusion,omitempty"`
// $hide_from_docs
// Indicates enforcement mode of the RbacConfig, in ENFORCED mode by default.
// It's used to verify new RbacConfig work as expected before rolling to production.
// When setting as PERMISSIVE, RBAC isn't enforced and has no impact on users.
// RBAC engine run RbacConfig in PERMISSIVE mode and logs stats.
// Invalid to set RbacConfig in PERMISSIVE and ServiceRoleBinding in ENFORCED mode.
EnforcementMode EnforcementMode `protobuf:"varint,4,opt,name=enforcement_mode,json=enforcementMode,proto3,enum=istio.rbac.v1alpha1.EnforcementMode" json:"enforcement_mode,omitempty"`
}
func (m *RbacConfig) Reset() { *m = RbacConfig{} }
@ -438,6 +445,13 @@ func (m *RbacConfig) GetExclusion() *RbacConfig_Target {
return nil
}
func (m *RbacConfig) GetEnforcementMode() EnforcementMode {
if m != nil {
return m.EnforcementMode
}
return EnforcementMode_ENFORCED
}
// Target defines a list of services or namespaces.
type RbacConfig_Target struct {
// A list of services.
@ -783,6 +797,11 @@ func (m *RbacConfig) MarshalTo(dAtA []byte) (int, error) {
}
i += n3
}
if m.EnforcementMode != 0 {
dAtA[i] = 0x20
i++
i = encodeVarintRbac(dAtA, i, uint64(m.EnforcementMode))
}
return i, nil
}
@ -970,6 +989,9 @@ func (m *RbacConfig) Size() (n int) {
l = m.Exclusion.Size()
n += 1 + l + sovRbac(uint64(l))
}
if m.EnforcementMode != 0 {
n += 1 + sovRbac(uint64(m.EnforcementMode))
}
return n
}
@ -1942,6 +1964,25 @@ func (m *RbacConfig) Unmarshal(dAtA []byte) error {
return err
}
iNdEx = postIndex
case 4:
if wireType != 0 {
return fmt.Errorf("proto: wrong wireType = %d for field EnforcementMode", wireType)
}
m.EnforcementMode = 0
for shift := uint(0); ; shift += 7 {
if shift >= 64 {
return ErrIntOverflowRbac
}
if iNdEx >= l {
return io.ErrUnexpectedEOF
}
b := dAtA[iNdEx]
iNdEx++
m.EnforcementMode |= (EnforcementMode(b) & 0x7F) << shift
if b < 0x80 {
break
}
}
default:
iNdEx = preIndex
skippy, err := skipRbac(dAtA[iNdEx:])
@ -2179,43 +2220,44 @@ var (
func init() { proto.RegisterFile("rbac/v1alpha1/rbac.proto", fileDescriptorRbac) }
var fileDescriptorRbac = []byte{
// 597 bytes of a gzipped FileDescriptorProto
// 615 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0xdd, 0x6a, 0xdb, 0x4c,
0x10, 0xcd, 0x4a, 0x8e, 0x1d, 0x8f, 0x3f, 0x12, 0x7d, 0xdb, 0xb4, 0x08, 0x53, 0x5c, 0x23, 0x4a,
0x31, 0xa1, 0xc8, 0x24, 0xa5, 0x21, 0x14, 0x7a, 0xd1, 0xd8, 0x0a, 0x35, 0x24, 0x76, 0x58, 0xa7,
0x3f, 0xf4, 0x26, 0xc8, 0xf2, 0xda, 0xde, 0x46, 0xde, 0x15, 0xbb, 0x92, 0x69, 0xde, 0xae, 0x97,
0xbd, 0xec, 0x13, 0xb4, 0xc5, 0x4f, 0x52, 0x24, 0x59, 0xb2, 0x1b, 0x5c, 0x87, 0xde, 0xcd, 0x9c,
0x99, 0x33, 0xcc, 0x39, 0x23, 0x2d, 0x98, 0x72, 0xe0, 0x7a, 0xcd, 0xd9, 0xa1, 0xeb, 0x07, 0x13,
0xf7, 0xb0, 0x19, 0x67, 0x76, 0x20, 0x45, 0x28, 0xf0, 0x03, 0xa6, 0x42, 0x26, 0xec, 0x04, 0xc9,
0xea, 0x56, 0x1b, 0x2a, 0x7d, 0x2a, 0x67, 0xcc, 0xa3, 0x44, 0xf8, 0x14, 0xbf, 0x84, 0x6d, 0x19,
0xf9, 0x54, 0x99, 0xa8, 0xae, 0x37, 0x2a, 0x47, 0x4f, 0xec, 0x35, 0x1c, 0xfb, 0x8d, 0xe7, 0x51,
0xa5, 0x48, 0xe4, 0x53, 0x92, 0x76, 0x5b, 0x3f, 0x10, 0xc0, 0x12, 0xc5, 0x55, 0xd8, 0x51, 0xe9,
0xd0, 0x74, 0x50, 0x99, 0xe4, 0x39, 0xde, 0x87, 0xed, 0xc0, 0x0d, 0x27, 0xca, 0xd4, 0x92, 0x42,
0x9a, 0x60, 0x13, 0x4a, 0x53, 0x1a, 0x4e, 0xc4, 0x50, 0x99, 0x7a, 0x82, 0x67, 0x29, 0x3e, 0x87,
0x8a, 0x27, 0xb8, 0x0a, 0xa5, 0xcb, 0x78, 0xa8, 0xcc, 0x42, 0xb2, 0xd7, 0xc1, 0x3d, 0x7b, 0xd9,
0xad, 0x9c, 0x42, 0x56, 0xe9, 0xd5, 0x63, 0x80, 0x65, 0x09, 0x1b, 0xa0, 0xdf, 0xd0, 0x5b, 0x13,
0xd5, 0x51, 0xa3, 0x4c, 0xe2, 0x10, 0x3f, 0x82, 0xe2, 0xcc, 0xf5, 0x23, 0x9a, 0xad, 0xb7, 0xc8,
0xac, 0xaf, 0x08, 0xf0, 0x8a, 0x4f, 0xa7, 0x8c, 0x0f, 0x19, 0x1f, 0xe3, 0x13, 0xd8, 0x51, 0xd1,
0xe0, 0x33, 0xf5, 0xc2, 0xcc, 0xb1, 0xc7, 0x6b, 0x37, 0xeb, 0xa7, 0x4d, 0x24, 0xef, 0xc6, 0xc7,
0x50, 0x92, 0xc2, 0xa7, 0x84, 0x8e, 0x4c, 0xad, 0x8e, 0xfe, 0x4a, 0x24, 0x69, 0x0f, 0xc9, 0x9a,
0xf1, 0x09, 0x14, 0xa6, 0x62, 0x48, 0x4d, 0xbd, 0x8e, 0x1a, 0xbb, 0x47, 0x4f, 0xd7, 0x92, 0x1c,
0x3e, 0x12, 0xd2, 0xa3, 0x53, 0xca, 0xc3, 0x0b, 0x31, 0xa4, 0x24, 0x61, 0xc4, 0x12, 0x4a, 0x8b,
0x3d, 0x30, 0x86, 0x42, 0xa4, 0xa8, 0x5c, 0x28, 0x4f, 0xe2, 0xf8, 0x30, 0x63, 0x29, 0xa2, 0x20,
0xd9, 0xa7, 0x4c, 0xd2, 0x04, 0x9f, 0x03, 0x04, 0x52, 0x04, 0x54, 0x86, 0x8c, 0xa6, 0xb7, 0xa9,
0x1c, 0x3d, 0xdf, 0xa4, 0xd1, 0xbe, 0xcc, 0xdb, 0x1d, 0x1e, 0xca, 0x5b, 0xb2, 0xc2, 0xaf, 0xbe,
0x86, 0xbd, 0x3b, 0xe5, 0x35, 0x37, 0xd8, 0x87, 0xed, 0xc4, 0xf5, 0x6c, 0x91, 0x24, 0x79, 0xa5,
0x9d, 0x20, 0xeb, 0x10, 0x4a, 0x0b, 0x43, 0x62, 0x05, 0x37, 0x8c, 0x0f, 0x33, 0x05, 0x71, 0x1c,
0x63, 0xdc, 0x9d, 0x66, 0xbc, 0x24, 0xb6, 0x7e, 0x6a, 0x00, 0x64, 0xe0, 0x7a, 0x2d, 0xc1, 0x47,
0x6c, 0x9c, 0xdb, 0x87, 0x36, 0xd8, 0xb7, 0x6c, 0xb7, 0x97, 0xf6, 0xe1, 0x36, 0x94, 0x19, 0xf7,
0xfc, 0x48, 0x31, 0xc1, 0x17, 0x27, 0x7b, 0x76, 0x1f, 0xfd, 0xca, 0x95, 0x63, 0x1a, 0x92, 0x25,
0x31, 0x9e, 0x42, 0xbf, 0x64, 0x53, 0xf4, 0x7f, 0x9b, 0x92, 0x13, 0xab, 0x6d, 0x28, 0xa6, 0xe0,
0xc6, 0x3f, 0xad, 0x06, 0x10, 0x5b, 0xa0, 0x02, 0xd7, 0xcb, 0xbf, 0xe7, 0x15, 0xc4, 0x72, 0xa0,
0x10, 0xeb, 0xc3, 0x25, 0xd0, 0x7b, 0x67, 0x67, 0xc6, 0x16, 0x2e, 0x82, 0xd6, 0xeb, 0x1a, 0x08,
0x3f, 0x84, 0xff, 0x7b, 0xdd, 0xeb, 0x0f, 0x9d, 0xab, 0xb7, 0xd7, 0x9d, 0x6e, 0xeb, 0xfc, 0x5d,
0xbf, 0xd3, 0xeb, 0x1a, 0xda, 0x2a, 0xec, 0x7c, 0xcc, 0x60, 0xfd, 0xa0, 0x09, 0x7b, 0x77, 0x3e,
0x38, 0xfc, 0x1f, 0xec, 0x38, 0xdd, 0xb3, 0x1e, 0x69, 0x39, 0x6d, 0x63, 0x0b, 0xef, 0x02, 0x5c,
0x3a, 0xe4, 0xa2, 0xd3, 0xef, 0x77, 0xde, 0x3b, 0x06, 0x3a, 0x6d, 0x7c, 0x9b, 0xd7, 0xd0, 0xf7,
0x79, 0x0d, 0xfd, 0x9a, 0xd7, 0xd0, 0xa7, 0x6a, 0xaa, 0x9e, 0x89, 0xa6, 0x1b, 0xb0, 0xe6, 0x1f,
0x8f, 0xd7, 0xa0, 0x98, 0x3c, 0x5c, 0x2f, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0xed, 0x05, 0x8b,
0x84, 0xd4, 0x04, 0x00, 0x00,
0x10, 0xcd, 0x5a, 0x8e, 0x1d, 0x8f, 0x3f, 0x12, 0x7d, 0xdb, 0xb4, 0x08, 0x53, 0x5c, 0x63, 0x4a,
0x31, 0xa1, 0xc8, 0x24, 0xa5, 0x21, 0x14, 0x7a, 0xd1, 0xd8, 0x0a, 0x35, 0x24, 0x56, 0x58, 0xa7,
0x3f, 0xf4, 0x26, 0xc8, 0xf2, 0xc6, 0xd9, 0x46, 0xde, 0x15, 0xbb, 0x52, 0x68, 0xde, 0xaa, 0x8f,
0xd0, 0xcb, 0x5e, 0xf6, 0x09, 0x4a, 0xc9, 0x93, 0x14, 0xad, 0x2c, 0xc9, 0x09, 0x6e, 0x42, 0xee,
0x66, 0xce, 0xcc, 0x19, 0x9f, 0x39, 0x63, 0x2d, 0x58, 0x72, 0xec, 0xf9, 0xdd, 0xcb, 0x6d, 0x2f,
0x08, 0xcf, 0xbd, 0xed, 0x6e, 0x92, 0xd9, 0xa1, 0x14, 0x91, 0xc0, 0x8f, 0x98, 0x8a, 0x98, 0xb0,
0x35, 0x92, 0xd5, 0xdb, 0x7d, 0xa8, 0x8f, 0xa8, 0xbc, 0x64, 0x3e, 0x25, 0x22, 0xa0, 0xf8, 0x35,
0xac, 0xca, 0x38, 0xa0, 0xca, 0x42, 0x2d, 0xa3, 0x53, 0xdf, 0x79, 0x66, 0x2f, 0xe1, 0xd8, 0xef,
0x7c, 0x9f, 0x2a, 0x45, 0xe2, 0x80, 0x92, 0xb4, 0xbb, 0xfd, 0x1b, 0x01, 0x14, 0x28, 0x6e, 0xc0,
0x9a, 0x4a, 0x87, 0xa6, 0x83, 0x6a, 0x24, 0xcf, 0xf1, 0x26, 0xac, 0x86, 0x5e, 0x74, 0xae, 0xac,
0x92, 0x2e, 0xa4, 0x09, 0xb6, 0xa0, 0x3a, 0xa3, 0xd1, 0xb9, 0x98, 0x28, 0xcb, 0xd0, 0x78, 0x96,
0xe2, 0x43, 0xa8, 0xfb, 0x82, 0xab, 0x48, 0x7a, 0x8c, 0x47, 0xca, 0x2a, 0x6b, 0x5d, 0x5b, 0xf7,
0xe8, 0xb2, 0x7b, 0x39, 0x85, 0x2c, 0xd2, 0x1b, 0xbb, 0x00, 0x45, 0x09, 0x9b, 0x60, 0x5c, 0xd0,
0x2b, 0x0b, 0xb5, 0x50, 0xa7, 0x46, 0x92, 0x10, 0x3f, 0x81, 0xca, 0xa5, 0x17, 0xc4, 0x34, 0x93,
0x37, 0xcf, 0xda, 0x3f, 0x10, 0xe0, 0x05, 0x9f, 0xf6, 0x19, 0x9f, 0x30, 0x3e, 0xc5, 0x7b, 0xb0,
0xa6, 0xe2, 0xf1, 0x57, 0xea, 0x47, 0x99, 0x63, 0x4f, 0x97, 0x2a, 0x1b, 0xa5, 0x4d, 0x24, 0xef,
0xc6, 0xbb, 0x50, 0x95, 0x22, 0xa0, 0x84, 0x9e, 0x59, 0xa5, 0x16, 0xfa, 0x27, 0x91, 0xa4, 0x3d,
0x24, 0x6b, 0xc6, 0x7b, 0x50, 0x9e, 0x89, 0x09, 0xb5, 0x8c, 0x16, 0xea, 0xac, 0xef, 0x3c, 0x5f,
0x4a, 0x72, 0xf8, 0x99, 0x90, 0x3e, 0x9d, 0x51, 0x1e, 0x1d, 0x89, 0x09, 0x25, 0x9a, 0x91, 0xac,
0x50, 0x9d, 0xeb, 0xc0, 0x18, 0xca, 0xb1, 0xa2, 0x72, 0xbe, 0xb9, 0x8e, 0x93, 0xc3, 0x4c, 0xa5,
0x88, 0x43, 0xad, 0xa7, 0x46, 0xd2, 0x04, 0x1f, 0x02, 0x84, 0x52, 0x84, 0x54, 0x46, 0x8c, 0xa6,
0xb7, 0xa9, 0xef, 0xbc, 0xbc, 0x6b, 0x47, 0xfb, 0x38, 0x6f, 0x77, 0x78, 0x24, 0xaf, 0xc8, 0x02,
0xbf, 0xf1, 0x16, 0x36, 0x6e, 0x95, 0x97, 0xdc, 0x60, 0x13, 0x56, 0xb5, 0xeb, 0x99, 0x10, 0x9d,
0xbc, 0x29, 0xed, 0xa1, 0xf6, 0x36, 0x54, 0xe7, 0x86, 0x24, 0x1b, 0x5c, 0x30, 0x3e, 0xc9, 0x36,
0x48, 0xe2, 0x04, 0xe3, 0xde, 0x2c, 0xe3, 0xe9, 0xb8, 0xfd, 0xdd, 0x00, 0x20, 0x63, 0xcf, 0xef,
0x09, 0x7e, 0xc6, 0xa6, 0xb9, 0x7d, 0xe8, 0x0e, 0xfb, 0x8a, 0x76, 0xbb, 0xb0, 0x0f, 0xf7, 0xa1,
0xc6, 0xb8, 0x1f, 0xc4, 0x8a, 0x09, 0x3e, 0x3f, 0xd9, 0x8b, 0xfb, 0xe8, 0x27, 0x9e, 0x9c, 0xd2,
0x88, 0x14, 0xc4, 0x64, 0x0a, 0xfd, 0x96, 0x4d, 0x31, 0x1e, 0x36, 0x25, 0x27, 0x62, 0x17, 0x4c,
0x5a, 0xdc, 0xf8, 0x54, 0x6f, 0x54, 0x7e, 0xc0, 0x1f, 0x62, 0x83, 0xde, 0x04, 0x1a, 0x7d, 0xa8,
0xa4, 0xbf, 0x72, 0xe7, 0xa7, 0xdb, 0x04, 0x48, 0x3c, 0x55, 0xa1, 0xe7, 0xe7, 0x1f, 0xc8, 0x02,
0xd2, 0x76, 0xa0, 0x9c, 0x4c, 0xc3, 0x55, 0x30, 0xdc, 0x83, 0x03, 0x73, 0x05, 0x57, 0xa0, 0xe4,
0x0e, 0x4d, 0x84, 0x1f, 0xc3, 0xff, 0xee, 0xf0, 0xf4, 0xd3, 0xe0, 0xe4, 0xfd, 0xe9, 0x60, 0xd8,
0x3b, 0xfc, 0x30, 0x1a, 0xb8, 0x43, 0xb3, 0xb4, 0x08, 0x3b, 0x9f, 0x33, 0xd8, 0xd8, 0xea, 0xc2,
0xc6, 0x2d, 0xc1, 0xf8, 0x3f, 0x58, 0x73, 0x86, 0x07, 0x2e, 0xe9, 0x39, 0x7d, 0x73, 0x05, 0xaf,
0x03, 0x1c, 0x3b, 0xe4, 0x68, 0x30, 0x1a, 0x0d, 0x3e, 0x3a, 0x26, 0xda, 0xef, 0xfc, 0xbc, 0x6e,
0xa2, 0x5f, 0xd7, 0x4d, 0xf4, 0xe7, 0xba, 0x89, 0xbe, 0x34, 0x52, 0x07, 0x98, 0xe8, 0x7a, 0x21,
0xeb, 0xde, 0x78, 0x0d, 0xc7, 0x15, 0xfd, 0x12, 0xbe, 0xfa, 0x1b, 0x00, 0x00, 0xff, 0xff, 0x00,
0xdb, 0x22, 0xbc, 0x25, 0x05, 0x00, 0x00,
}

View File

@ -247,4 +247,12 @@ message RbacConfig {
// A list of services or namespaces that should not be enforced by Istio RBAC policies. Note: This field have
// effect only when mode is ON_WITH_EXCLUSION and will be ignored for any other modes.
Target exclusion = 3;
// $hide_from_docs
// Indicates enforcement mode of the RbacConfig, in ENFORCED mode by default.
// It's used to verify new RbacConfig work as expected before rolling to production.
// When setting as PERMISSIVE, RBAC isn't enforced and has no impact on users.
// RBAC engine run RbacConfig in PERMISSIVE mode and logs stats.
// Invalid to set RbacConfig in PERMISSIVE and ServiceRoleBinding in ENFORCED mode.
EnforcementMode enforcement_mode = 4;
}