in internal/resources/fetching/fetchers/aws/iam_fetcher.go [59:109]
func (f IAMFetcher) Fetch(ctx context.Context, cycleMetadata cycle.Metadata) error {
f.log.Debug("Starting IAMFetcher.Fetch")
iamResources := make([]awslib.AwsResource, 0)
pwdPolicy, err := f.iamProvider.GetPasswordPolicy(ctx)
if err != nil {
f.log.Errorf("Unable to fetch PasswordPolicy, error: %v", err)
} else {
iamResources = append(iamResources, pwdPolicy)
}
users, err := f.iamProvider.GetUsers(ctx)
if err != nil {
f.log.Errorf("Unable to fetch IAM users, error: %v", err)
} else {
iamResources = append(iamResources, users...)
}
policies, err := f.iamProvider.GetPolicies(ctx)
if err != nil {
f.log.Errorf("Unable to fetch IAM policies, error: %v", err)
} else {
iamResources = append(iamResources, policies...)
}
serverCertificates, err := f.iamProvider.ListServerCertificates(ctx)
if err != nil {
f.log.Errorf("Unable to fetch IAM server certificates, error: %v", err)
} else {
iamResources = append(iamResources, serverCertificates)
}
accessAnalyzers, err := f.iamProvider.GetAccessAnalyzers(ctx)
if err != nil {
f.log.Errorf("Unable to fetch access access analyzers, error: %v", err)
} else {
iamResources = append(iamResources, accessAnalyzers)
}
for _, iamResource := range iamResources {
f.resourceCh <- fetching.ResourceInfo{
Resource: IAMResource{
AwsResource: iamResource,
identity: f.cloudIdentity,
},
CycleMetadata: cycleMetadata,
}
}
return nil
}