resources

package
v0.0.0-...-8321af7 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 25, 2024 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ACMService = Service{
		Name: "acm",
		Reports: map[string]Report{
			"certificates": ACMListCertificates,
		},
	}
)
View Source
var (
	AutoScalingService = Service{
		Name: "autoscaling",
		Reports: map[string]Report{
			"groups":                AutoScalingListGroups,
			"launch-configurations": AutoScalingListLaunchConfigurations,
		},
	}
)
View Source
var (
	CloudwatchService = Service{
		Name: "cloudwatch",
		Reports: map[string]Report{
			"alarms": CloudwatchListAlarms,
		},
	}
)
View Source
var (
	EC2Service = Service{
		Name: "ec2",
		Reports: map[string]Report{
			"vpcs":             EC2ListVpcs,
			"security-groups":  EC2ListSecurityGroups,
			"images":           EC2ListImages,
			"instances":        EC2ListInstances,
			"launch-templates": EC2ListLaunchTemplates,
			"nat-gateways":     EC2ListNATGateways,
			"key-pairs":        EC2ListKeyPairs,
		},
	}
)
View Source
var (
	IAMService = Service{
		Name:     "iam",
		IsGlobal: true,
		Reports: map[string]Report{
			"users-and-access-keys":         IAMListUsersAndAccessKeys,
			"roles":                         IAMListRoles,
			"policies":                      IAMListPolicies,
			"groups":                        IAMListGroups,
			"instance-profiles":             IAMListInstanceProfiles,
			"account-authorization-details": IAMListAccountAuthorizationDetails,
		},
	}
)
View Source
var (
	KMSService = Service{
		Name: "kms",
		Reports: map[string]Report{
			"keys":    KMSListKeys,
			"aliases": KMSListAliases,
		},
	}
)
View Source
var (
	LambdaService = Service{
		Name: "lambda",
		Reports: map[string]Report{
			"functions":             LambdaListFunctions,
			"event-source-mappings": LambdaListEventSourceMappings,
		},
	}
)
View Source
var (
	RDSService = Service{
		Name: "rds",
		Reports: map[string]Report{
			"db-clusters":                   RDSListDBClusters,
			"db-instance-automated-backups": RDSListDBInstanceAutomatedBackups,
			"db-instances":                  RDSListDBInstances,
			"db-parameter-groups":           RDSListDBParameterGroups,
			"db-security-groups":            RDSListDBSecurityGroups,
			"db-snapshots":                  RDSListDBSnapshots,
			"db-subnet-groups":              RDSListDBSubnetGroups,
			"event-subscriptions":           RDSListEventSubscriptions,
			"events":                        RDSListEvents,
			"global-clusters":               RDSListGlobalClusters,
			"option-groups":                 RDSListOptionGroups,
			"reserved-db-instances":         RDSListReservedDBInstances,
		},
	}
)
View Source
var (
	Route53Service = Service{
		Name: "route53",
		Reports: map[string]Report{
			"zones-and-records": Route53ListHostedZonesAndRecordSets,
		},
	}
)
View Source
var (
	S3Service = Service{
		Name: "s3",
		Reports: map[string]Report{
			"buckets": S3ListBuckets,
		},
	}
)

Functions

func AllReports

func AllReports() []string

func AllServices

func AllServices() map[string]Service

func AttachServiceLastAccessedDetails

func AttachServiceLastAccessedDetails(client *iam.IAM, result *ReportResult, jobIds []*string)

func DecodeInlinePolicyDocument

func DecodeInlinePolicyDocument(inlineDocument string) (map[string]interface{}, error)

func GenerateServiceLastAccessedDetails

func GenerateServiceLastAccessedDetails(client *iam.IAM, arns []*string) ([]*string, error)

func OpenSessions

func OpenSessions(accounts []*Account) error

Types

type Account

type Account struct {
	Regions     []string `json:"regions"`
	RoleARN     string   `json:"role_arn"`
	RolePolicy  string   `json:"role_policy"`
	ExternalID  string   `json:"external_id"`
	SessionName string   `json:"session_name"`
	Sessions    []*Session
}

func NewAccountsFromFile

func NewAccountsFromFile(filename string) ([]*Account, error)

type Job

type Job struct {
	Report  Report
	Session *Session
}

type PolicyFetchFunc

type PolicyFetchFunc func(*Session, *iam.IAM, string, string) *ReportResult

type Report

type Report func(*Session) *ReportResult

type ReportResult

type ReportResult struct {
	Resources []Resource
	Error     error
}

func ACMListCertificates

func ACMListCertificates(session *Session) *ReportResult

func AutoScalingListGroups

func AutoScalingListGroups(session *Session) *ReportResult

func AutoScalingListLaunchConfigurations

func AutoScalingListLaunchConfigurations(session *Session) *ReportResult

func CloudwatchListAlarms

func CloudwatchListAlarms(session *Session) *ReportResult

func EC2ListImages

func EC2ListImages(session *Session) *ReportResult

func EC2ListInstances

func EC2ListInstances(session *Session) *ReportResult

func EC2ListKeyPairs

func EC2ListKeyPairs(session *Session) *ReportResult

func EC2ListLaunchTemplateVersions

func EC2ListLaunchTemplateVersions(session *Session, launchTemplateID string) *ReportResult

func EC2ListLaunchTemplates

func EC2ListLaunchTemplates(session *Session) *ReportResult

func EC2ListNATGateways

func EC2ListNATGateways(session *Session) *ReportResult

func EC2ListSecurityGroups

func EC2ListSecurityGroups(session *Session) *ReportResult

func EC2ListVpcs

func EC2ListVpcs(session *Session) *ReportResult

func IAMListAccessKeys

func IAMListAccessKeys(session *Session, client *iam.IAM, username string) *ReportResult

func IAMListAccountAuthorizationDetails

func IAMListAccountAuthorizationDetails(session *Session) *ReportResult

func IAMListGroupAttachedPolicies

func IAMListGroupAttachedPolicies(session *Session, client *iam.IAM, groupARN, groupName string) *ReportResult

func IAMListGroupPolicies

func IAMListGroupPolicies(session *Session, client *iam.IAM, groupARN, groupName string) *ReportResult

func IAMListGroups

func IAMListGroups(session *Session) *ReportResult

func IAMListInstanceProfiles

func IAMListInstanceProfiles(session *Session) *ReportResult

func IAMListPolicies

func IAMListPolicies(session *Session) *ReportResult

func IAMListPolicyVersions

func IAMListPolicyVersions(session *Session, client *iam.IAM, policyArn string) *ReportResult

func IAMListRoleAttachedPolicies

func IAMListRoleAttachedPolicies(session *Session, client *iam.IAM, roleARN, roleName string) *ReportResult

func IAMListRolePolicies

func IAMListRolePolicies(session *Session, client *iam.IAM, roleARN, roleName string) *ReportResult

func IAMListRoles

func IAMListRoles(session *Session) *ReportResult

func IAMListUserAttachedPolicies

func IAMListUserAttachedPolicies(session *Session, client *iam.IAM, userARN, userName string) *ReportResult

func IAMListUserPolicies

func IAMListUserPolicies(session *Session, client *iam.IAM, userARN, userName string) *ReportResult

func IAMListUsersAndAccessKeys

func IAMListUsersAndAccessKeys(session *Session) *ReportResult

func KMSListAliases

func KMSListAliases(session *Session) *ReportResult

func KMSListKeys

func KMSListKeys(session *Session) *ReportResult

func LambdaListEventSourceMappings

func LambdaListEventSourceMappings(session *Session) *ReportResult

func LambdaListFunctions

func LambdaListFunctions(session *Session) *ReportResult

func RDSListDBClusters

func RDSListDBClusters(session *Session) *ReportResult

func RDSListDBInstanceAutomatedBackups

func RDSListDBInstanceAutomatedBackups(session *Session) *ReportResult

func RDSListDBInstances

func RDSListDBInstances(session *Session) *ReportResult

func RDSListDBParameterGroups

func RDSListDBParameterGroups(session *Session) *ReportResult

func RDSListDBSecurityGroups

func RDSListDBSecurityGroups(session *Session) *ReportResult

func RDSListDBSnapshots

func RDSListDBSnapshots(session *Session) *ReportResult

func RDSListDBSubnetGroups

func RDSListDBSubnetGroups(session *Session) *ReportResult

func RDSListEventSubscriptions

func RDSListEventSubscriptions(session *Session) *ReportResult

func RDSListEvents

func RDSListEvents(session *Session) *ReportResult

func RDSListGlobalClusters

func RDSListGlobalClusters(session *Session) *ReportResult

func RDSListOptionGroups

func RDSListOptionGroups(session *Session) *ReportResult

func RDSListReservedDBInstances

func RDSListReservedDBInstances(session *Session) *ReportResult

func Route53ListHostedZonesAndRecordSets

func Route53ListHostedZonesAndRecordSets(session *Session) *ReportResult

func Route53ListResourceRecordSets

func Route53ListResourceRecordSets(session *Session, hostedZoneID string) *ReportResult

func S3ListBuckets

func S3ListBuckets(session *Session) *ReportResult

type Resource

type Resource struct {
	ID        string                 `json:"id"`
	ARN       string                 `json:"arn"`
	Service   string                 `json:"service"`
	Type      string                 `json:"type"`
	AccountID string                 `json:"account_id"`
	Region    string                 `json:"region"`
	Metadata  map[string]interface{} `json:"metadata"`
	ManagedBy map[string]string      `json:"managed_by"`
}

func NewResource

func NewResource(arnstr string, metadata interface{}) (*Resource, error)

func Run

func Run(jobs []Job) ([]Resource, []error)

func (*Resource) UniqueID

func (r *Resource) UniqueID() string

type Service

type Service struct {
	Name     string
	IsGlobal bool
	Reports  map[string]Report
}

func (*Service) GenerateAllJobs

func (s *Service) GenerateAllJobs(account *Account) ([]Job, error)

func (*Service) GenerateJobs

func (s *Service) GenerateJobs(account *Account, resource string) ([]Job, error)

type Session

type Session struct {
	Session   *session.Session
	Config    *aws.Config
	AccountID string
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL