Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
42 commits
Select commit Hold shift + click to select a range
6676cbd
Protobuf and configuration for Access Graph Azure Discovery
mvbrock Dec 17, 2024
9b0971a
Adding the Azure sync module functions along with new cloud client fu…
mvbrock Dec 17, 2024
39c5aae
Fixing rebase after protobuf gen
mvbrock Dec 18, 2024
70d3cb8
Updating to use existing msgraph client
mvbrock Dec 19, 2024
deeb445
PR feedback
mvbrock Dec 20, 2024
fc28840
Using variadic options
mvbrock Jan 6, 2025
57774fc
Removing memberOf expansion
mvbrock Jan 6, 2025
1ab3e39
Expanding memberships by calling memberOf on each user
mvbrock Jan 7, 2025
b15e1d3
PR feedback
mvbrock Jan 9, 2025
2ac1247
Rebase go.sum stuff
mvbrock Jan 9, 2025
6a3f629
Go mod tidy
mvbrock Jan 9, 2025
eb8b74e
Fixing go.mod
mvbrock Jan 9, 2025
393db0c
Update lib/msgraph/paginated.go
mvbrock Jan 10, 2025
0b661ac
PR feedback
mvbrock Jan 10, 2025
230b3e5
Adding the Azure sync module functions along with new cloud client fu…
mvbrock Dec 17, 2024
9ac3c70
Protobuf and configuration for Access Graph Azure Discovery
mvbrock Dec 17, 2024
b79df3b
Adding Azure sync functionality which can be called by the Azure fetcher
mvbrock Dec 17, 2024
9326ed0
Protobuf update
mvbrock Dec 18, 2024
4d12b39
Invoking membership expansion
mvbrock Jan 7, 2025
dd6bfa7
Setting principals before expansion
mvbrock Jan 7, 2025
bd98ddc
Removing msgraphclient
mvbrock Jan 9, 2025
1d37ab7
Linting
mvbrock Jan 13, 2025
b3d3194
PR feedback
mvbrock Jan 15, 2025
e1c7b0b
PR feedback
mvbrock Jan 16, 2025
bdc9c68
Adding the Azure sync module functions along with new cloud client fu…
mvbrock Dec 17, 2024
3ee4122
Updating to use existing msgraph client
mvbrock Dec 19, 2024
bf23769
PR feedback
mvbrock Dec 20, 2024
59b0a38
Using variadic options
mvbrock Jan 6, 2025
39bb57e
Removing memberOf expansion
mvbrock Jan 6, 2025
361277e
Expanding memberships by calling memberOf on each user
mvbrock Jan 7, 2025
4700be4
PR feedback
mvbrock Jan 9, 2025
544968c
Rebase go.sum stuff
mvbrock Jan 9, 2025
edf0768
PR feedback
mvbrock Jan 10, 2025
094f19e
Adding the Azure sync module functions along with new cloud client fu…
mvbrock Dec 17, 2024
ecff766
Protobuf and configuration for Access Graph Azure Discovery
mvbrock Dec 17, 2024
263adc5
Invoking the Azure fetcher in the Discovery service
mvbrock Dec 17, 2024
24380b7
Protobuf gen fix
mvbrock Dec 18, 2024
d202db6
Conformant package name
mvbrock Dec 31, 2024
c9fb069
Removing msgraphclient (again?)
mvbrock Jan 16, 2025
64ca538
Rebase fixes
mvbrock Jan 22, 2025
9bb0b60
More cleanup
mvbrock Jan 22, 2025
10feddd
PR feedback
mvbrock Jan 23, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,15 @@ const (
batchSize = 500
// defaultPollInterval is the default interval between polling for access graph resources
defaultPollInterval = 15 * time.Minute
// Configure health check service to monitor access graph service and
// automatically reconnect if the connection is lost without
// relying on new events from the auth server to trigger a reconnect.
serviceConfig = `{
"loadBalancingPolicy": "round_robin",
"healthCheckConfig": {
"serviceName": ""
}
}`
)

// errNoAccessGraphFetchers is returned when there are no TAG fetchers.
Expand Down Expand Up @@ -145,15 +154,15 @@ func (s *Server) reconcileAccessGraph(ctx context.Context, currentTAGResources *

// getAllAWSSyncFetchers returns all AWS sync fetchers.
func (s *Server) getAllAWSSyncFetchers() []aws_sync.AWSSync {
allFetchers := make([]aws_sync.AWSSync, 0, len(s.dynamicTAGSyncFetchers))
allFetchers := make([]aws_sync.AWSSync, 0, len(s.dynamicTAGAWSFetchers))

s.muDynamicTAGSyncFetchers.RLock()
for _, fetcherSet := range s.dynamicTAGSyncFetchers {
s.muDynamicTAGAWSFetchers.RLock()
for _, fetcherSet := range s.dynamicTAGAWSFetchers {
allFetchers = append(allFetchers, fetcherSet...)
}
s.muDynamicTAGSyncFetchers.RUnlock()
s.muDynamicTAGAWSFetchers.RUnlock()

allFetchers = append(allFetchers, s.staticTAGSyncFetchers...)
allFetchers = append(allFetchers, s.staticTAGAWSFetchers...)
// TODO(tigrato): submit fetchers event
return allFetchers
}
Expand Down Expand Up @@ -257,15 +266,6 @@ func (s *Server) initializeAndWatchAccessGraph(ctx context.Context, reloadCh <-c
const (
// aws discovery semaphore lock.
semaphoreName = "access_graph_aws_sync"
// Configure health check service to monitor access graph service and
// automatically reconnect if the connection is lost without
// relying on new events from the auth server to trigger a reconnect.
serviceConfig = `{
"loadBalancingPolicy": "round_robin",
"healthCheckConfig": {
"serviceName": ""
}
}`
)

clusterFeatures := s.Config.ClusterFeatures()
Expand Down Expand Up @@ -438,12 +438,12 @@ func grpcCredentials(config AccessGraphConfig, getCert func() (*tls.Certificate,
return grpc.WithTransportCredentials(credentials.NewTLS(tlsConfig)), nil
}

func (s *Server) initAccessGraphWatchers(ctx context.Context, cfg *Config) error {
fetchers, err := s.accessGraphFetchersFromMatchers(ctx, cfg.Matchers, "" /* discoveryConfigName */)
func (s *Server) initTAGAWSWatchers(ctx context.Context, cfg *Config) error {
fetchers, err := s.accessGraphAWSFetchersFromMatchers(ctx, cfg.Matchers, "" /* discoveryConfigName */)
if err != nil {
s.Log.ErrorContext(ctx, "Error initializing access graph fetchers", "error", err)
}
s.staticTAGSyncFetchers = fetchers
s.staticTAGAWSFetchers = fetchers

if cfg.AccessGraphConfig.Enabled {
go func() {
Expand Down Expand Up @@ -482,8 +482,8 @@ func (s *Server) initAccessGraphWatchers(ctx context.Context, cfg *Config) error
return nil
}

// accessGraphFetchersFromMatchers converts Matchers into a set of AWS Sync Fetchers.
func (s *Server) accessGraphFetchersFromMatchers(ctx context.Context, matchers Matchers, discoveryConfigName string) ([]aws_sync.AWSSync, error) {
// accessGraphAWSFetchersFromMatchers converts Matchers into a set of AWS Sync Fetchers.
func (s *Server) accessGraphAWSFetchersFromMatchers(ctx context.Context, matchers Matchers, discoveryConfigName string) ([]aws_sync.AWSSync, error) {
var fetchers []aws_sync.AWSSync
var errs []error
if matchers.AccessGraph == nil {
Expand Down
Loading