aws

package
v1.7.0 Latest Latest
Warning

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

Go to latest
Published: Sep 12, 2022 License: MIT Imports: 56 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessKeysModule

type AccessKeysModule struct {
	// General configuration data
	IAMClient      *iam.Client
	Caller         sts.GetCallerIdentityOutput
	AWSProfile     string
	OutputFormat   string
	CommandCounter console.CommandCounter

	// Main module data
	AnalyzedUsers []UserKeys
	// contains filtered or unexported fields
}

func (*AccessKeysModule) PrintAccessKeys

func (m *AccessKeysModule) PrintAccessKeys(filter string, outputFormat string, outputDirectory string, verbosity int)

type AnalyzedRole

type AnalyzedRole struct {
	// contains filtered or unexported fields
}

type Bucket

type Bucket struct {
	AWSService string
	Region     string
	Name       string
}

type BucketsModule

type BucketsModule struct {
	// General configuration data
	S3Client *s3.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Buckets        []Bucket
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*BucketsModule) PrintBuckets

func (m *BucketsModule) PrintBuckets(outputFormat string, outputDirectory string, verbosity int)

func (*BucketsModule) Receiver

func (m *BucketsModule) Receiver(receiver chan Bucket, receiverDone chan bool)

type CloudTrailEvent

type CloudTrailEvent struct {
	EventVersion string `json:"eventVersion"`
	UserIdentity struct {
		Type           string `json:"type"`
		PrincipalID    string `json:"principalId"`
		Arn            string `json:"arn"`
		AccountID      string `json:"accountId"`
		AccessKeyID    string `json:"accessKeyId"`
		SessionContext struct {
			SessionIssuer struct {
				Type        string `json:"type"`
				PrincipalID string `json:"principalId"`
				Arn         string `json:"arn"`
				AccountID   string `json:"accountId"`
				UserName    string `json:"userName"`
			} `json:"sessionIssuer"`
			WebIDFederationData struct {
			} `json:"webIdFederationData"`
			Attributes struct {
				CreationDate     time.Time `json:"creationDate"`
				MfaAuthenticated string    `json:"mfaAuthenticated"`
			} `json:"attributes"`
		} `json:"sessionContext"`
	} `json:"userIdentity"`
	EventTime         time.Time `json:"eventTime"`
	EventSource       string    `json:"eventSource"`
	EventName         string    `json:"eventName"`
	AwsRegion         string    `json:"awsRegion"`
	SourceIPAddress   string    `json:"sourceIPAddress"`
	UserAgent         string    `json:"userAgent"`
	RequestParameters struct {
		RoleArn         string `json:"roleArn"`
		RoleSessionName string `json:"roleSessionName"`
	} `json:"requestParameters"`
	ResponseElements struct {
		Credentials struct {
			AccessKeyID  string `json:"accessKeyId"`
			SessionToken string `json:"sessionToken"`
			Expiration   string `json:"expiration"`
		} `json:"credentials"`
		AssumedRoleUser struct {
			AssumedRoleID string `json:"assumedRoleId"`
			Arn           string `json:"arn"`
		} `json:"assumedRoleUser"`
	} `json:"responseElements"`
	RequestID string `json:"requestID"`
	EventID   string `json:"eventID"`
	ReadOnly  bool   `json:"readOnly"`
	Resources []struct {
		AccountID string `json:"accountId"`
		Type      string `json:"type"`
		Arn       string `json:"ARN"`
	} `json:"resources"`
	EventType          string `json:"eventType"`
	ManagementEvent    bool   `json:"managementEvent"`
	RecipientAccountID string `json:"recipientAccountId"`
	EventCategory      string `json:"eventCategory"`
	TLSDetails         struct {
		TLSVersion               string `json:"tlsVersion"`
		CipherSuite              string `json:"cipherSuite"`
		ClientProvidedHostHeader string `json:"clientProvidedHostHeader"`
	} `json:"tlsDetails"`
}

type ECRModule

type ECRModule struct {
	// General configuration data
	ECRClient *ecr.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Repositories   []Repository
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*ECRModule) PrintECR

func (m *ECRModule) PrintECR(outputFormat string, outputDirectory string, verbosity int)

func (*ECRModule) Receiver

func (m *ECRModule) Receiver(receiver chan Repository, receiverDone chan bool)

type Endpoint

type Endpoint struct {
	AWSService string
	Region     string
	Name       string
	Endpoint   string
	Port       int32
	Protocol   string
	Public     string
}

type EndpointsModule

type EndpointsModule struct {
	// General configuration data
	LambdaClient       *lambda.Client
	EKSClient          *eks.Client
	MQClient           *mq.Client
	OpenSearchClient   *opensearch.Client
	GrafanaClient      *grafana.Client
	ELBv2Client        *elasticloadbalancingv2.Client
	ELBClient          *elasticloadbalancing.Client
	APIGatewayClient   *apigateway.Client
	APIGatewayv2Client *apigatewayv2.Client
	RDSClient          *rds.Client
	RedshiftClient     *redshift.Client
	S3Client           *s3.Client
	CloudfrontClient   *cloudfront.Client
	AppRunnerClient    *apprunner.Client
	LightsailClient    *lightsail.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Endpoints      []Endpoint
	CommandCounter console.CommandCounter
	Errors         []string
	// contains filtered or unexported fields
}

func (*EndpointsModule) PrintEndpoints

func (m *EndpointsModule) PrintEndpoints(outputFormat string, outputDirectory string, verbosity int)

func (*EndpointsModule) Receiver

func (m *EndpointsModule) Receiver(receiver chan Endpoint, receiverDone chan bool)

type EnvironmentVariable

type EnvironmentVariable struct {
	// contains filtered or unexported fields
}

type EnvsModule

type EnvsModule struct {
	// General configuration data
	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	AWSProfile   string
	OutputFormat string

	// Service Clients
	ECSClient       *ecs.Client
	LambdaClient    *lambda.Client
	AppRunnerClient *apprunner.Client
	LightsailClient *lightsail.Client
	SagemakerClient *sagemaker.Client

	// Main module data
	EnvironmentVariables []EnvironmentVariable
	CommandCounter       console.CommandCounter
	// contains filtered or unexported fields
}

func (*EnvsModule) PrintEnvs

func (m *EnvsModule) PrintEnvs(outputFormat string, outputDirectory string, verbosity int)

func (*EnvsModule) Receiver

func (m *EnvsModule) Receiver(receiver chan EnvironmentVariable, receiverDone chan bool)

type FilesystemObject

type FilesystemObject struct {
	AWSService  string
	Region      string
	Name        string
	DnsName     string
	IP          string
	Policy      string
	MountTarget string
}

type FilesystemsModule

type FilesystemsModule struct {
	EFSClient *efs.Client
	FSxClient *fsx.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Filesystems []FilesystemObject

	Regions        [30]FilesystemObject
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*FilesystemsModule) PrintFilesystems

func (m *FilesystemsModule) PrintFilesystems(outputFormat string, outputDirectory string, verbosity int)

func (*FilesystemsModule) Receiver

func (m *FilesystemsModule) Receiver(receiver chan FilesystemObject, receiverDone chan bool)

type GAADGroup

type GAADGroup struct {
	Arn              string
	Name             string
	AttachedPolicies []types.AttachedPolicy
	InlinePolicies   []types.PolicyDetail
}

type GAADPolicy

type GAADPolicy struct {
	Name              string
	Arn               string
	PolicyVersionList []types.PolicyVersion
}

type GAADRole

type GAADRole struct {
	Arn              string
	Name             string
	AttachedPolicies []types.AttachedPolicy
	InlinePolicies   []types.PolicyDetail
}

type GAADUser

type GAADUser struct {
	Name             string
	Arn              string
	AttachedPolicies []types.AttachedPolicy
	InlinePolicies   []types.PolicyDetail
	GroupList        []string
}

type GlobalResourceCount2

type GlobalResourceCount2 struct {
	// contains filtered or unexported fields
}

type Group

type Group struct {
	AWSService       string
	Type             string
	Arn              string
	Name             string
	AttachedPolicies []string
	InlinePolicies   []string
	AttachedUsers    []string
}

type IamPermissionsModule

type IamPermissionsModule struct {
	// General configuration data
	IAMClient *iam.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	Policies       []GAADPolicy
	Users          []GAADUser
	Roles          []GAADRole
	Groups         []GAADGroup
	Rows           []PermissionsRow
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*IamPermissionsModule) PrintIamPermissions

func (m *IamPermissionsModule) PrintIamPermissions(outputFormat string, outputDirectory string, verbosity int, principal string)

type IamPrincipalsModule

type IamPrincipalsModule struct {
	// General configuration data
	IAMClient *iam.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Users          []User
	Roles          []Role
	Groups         []Group
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*IamPrincipalsModule) PrintIamPrincipals

func (m *IamPrincipalsModule) PrintIamPrincipals(outputFormat string, outputDirectory string, verbosity int)

type IamSimulatorModule

type IamSimulatorModule struct {
	// General configuration data
	IAMClient *iam.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	SimulatorResults []SimulatorResult
	CommandCounter   console.CommandCounter
	// contains filtered or unexported fields
}

func (*IamSimulatorModule) PrintIamSimulator

func (m *IamSimulatorModule) PrintIamSimulator(principal string, action string, resource string, outputFormat string, outputDirectory string, verbosity int)

func (*IamSimulatorModule) Receiver

func (m *IamSimulatorModule) Receiver(receiver chan SimulatorResult, receiverDone chan bool)

type InstancesModule

type InstancesModule struct {
	// General configuration data
	EC2Client              *ec2.Client
	Caller                 sts.GetCallerIdentityOutput
	AWSRegions             []string
	OutputFormat           string
	UserDataAttributesOnly bool
	AWSProfile             string

	// Module's Results
	MappedInstances []MappedInstance
	CommandCounter  console.CommandCounter
	// contains filtered or unexported fields
}

func (*InstancesModule) Instances

func (m *InstancesModule) Instances(filter string, outputFormat string, outputDirectory string, verbosity int)

func (*InstancesModule) Receiver

func (m *InstancesModule) Receiver(receiver chan MappedInstance, receiverDone chan bool)

type Inventory2Module

type Inventory2Module struct {
	// General configuration data
	LambdaClient         *lambda.Client
	EC2Client            *ec2.Client
	ECSClient            *ecs.Client
	EKSClient            *eks.Client
	S3Client             *s3.Client
	CloudFormationClient *cloudformation.Client
	SecretsManagerClient *secretsmanager.Client
	SSMClient            *ssm.Client
	RDSClient            *rds.Client
	APIGatewayv2Client   *apigatewayv2.Client
	ELBv2Client          *elasticloadbalancingv2.Client
	ELBClient            *elasticloadbalancing.Client
	IAMClient            *iam.Client
	MQClient             *mq.Client
	OpenSearchClient     *opensearch.Client
	GrafanaClient        *grafana.Client
	APIGatewayClient     *apigateway.Client
	RedshiftClient       *redshift.Client
	CloudfrontClient     *cloudfront.Client
	AppRunnerClient      *apprunner.Client
	LightsailClient      *lightsail.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	RegionResourceCount  int
	CommandCounter       console.CommandCounter
	GlobalResourceCounts []GlobalResourceCount2
	// contains filtered or unexported fields
}

func (*Inventory2Module) PrintGlobalResources

func (m *Inventory2Module) PrintGlobalResources(outputFormat string, outputDirectory string, verbosity int, dataReceiver chan GlobalResourceCount2)

func (*Inventory2Module) PrintInventoryPerRegion

func (m *Inventory2Module) PrintInventoryPerRegion(outputFormat string, outputDirectory string, verbosity int)

func (*Inventory2Module) PrintTotalResources

func (m *Inventory2Module) PrintTotalResources(outputFormat string)

func (*Inventory2Module) Receiver

func (m *Inventory2Module) Receiver(receiver chan GlobalResourceCount2, receiverDone chan bool)

type ListOfItems

type ListOfItems []string

A custom unmarshaller is necessary because the list of principals can be an array of strings or a string. https://stackoverflow.com/questions/65854778/parsing-arn-from-iam-policy-using-regex

func (*ListOfItems) UnmarshalJSON

func (r *ListOfItems) UnmarshalJSON(b []byte) error

type ListOfPrincipals

type ListOfPrincipals []string

A custom unmarshaller is necessary because the list of principals can be an array of strings or a string. https://stackoverflow.com/questions/65854778/parsing-arn-from-iam-policy-using-regex

func (*ListOfPrincipals) UnmarshalJSON

func (r *ListOfPrincipals) UnmarshalJSON(b []byte) error

type MappedInstance

type MappedInstance struct {
	ID               string
	Name             string
	Arn              string
	AvailabilityZone string
	State            string
	ExternalIP       string
	PrivateIP        string
	Profile          string
	Region           string
}

type OutboundAssumeRoleEntry

type OutboundAssumeRoleEntry struct {
	AWSService           string
	Region               string
	Type                 string
	SourceAccount        string
	SourcePrincipal      string
	DestinationAccount   string
	DestinationPrincipal string
	LogTimestamp         string
}

type OutboundAssumedRolesModule

type OutboundAssumedRolesModule struct {
	// General configuration data
	CloudTrailClient *cloudtrail.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	OutboundAssumeRoleEntries []OutboundAssumeRoleEntry
	Days                      int
	CommandCounter            console.CommandCounter
	// contains filtered or unexported fields
}

func (*OutboundAssumedRolesModule) PrintOutboundRoleTrusts

func (m *OutboundAssumedRolesModule) PrintOutboundRoleTrusts(days int, outputFormat string, outputDirectory string, verbosity int)

func (*OutboundAssumedRolesModule) Receiver

func (m *OutboundAssumedRolesModule) Receiver(receiver chan OutboundAssumeRoleEntry, receiverDone chan bool)

type PermissionsRow

type PermissionsRow struct {
	AWSService string
	Type       string
	Name       string
	Arn        string
	PolicyType string
	PolicyName string
	Effect     string
	Action     string
	Resource   string
}

type RAMModule

type RAMModule struct {
	// General configuration data
	RAMClient *ram.Client

	Caller       sts.GetCallerIdentityOutput
	AWSRegions   []string
	OutputFormat string
	AWSProfile   string

	// Main module data
	Resources      []Resource
	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*RAMModule) PrintRAM

func (m *RAMModule) PrintRAM(outputFormat string, outputDirectory string, verbosity int)

func (*RAMModule) Receiver

func (m *RAMModule) Receiver(receiver chan Resource, receiverDone chan bool)

type Record

type Record struct {
	AWSService  string
	Name        string
	Type        string
	Value       string
	PrivateZone string
}

type Repository

type Repository struct {
	AWSService string
	Region     string
	Name       string
	URI        string
	PushedAt   string
	ImageTags  string
	ImageSize  int64
}

type Resource

type Resource struct {
	AWSService string
	Region     string
	Name       string
	Owner      string
}

type Role

type Role struct {
	AWSService       string
	Type             string
	Arn              string
	Name             string
	AttachedPolicies []string
	InlinePolicies   []string
}

type RoleTrustsModule

type RoleTrustsModule struct {
	// General configuration data
	IAMClient      iam.ListRolesAPIClient
	Caller         sts.GetCallerIdentityOutput
	AWSProfile     string
	CommandCounter console.CommandCounter

	// Main module data
	AnalyzedRoles []AnalyzedRole
	// contains filtered or unexported fields
}

func (*RoleTrustsModule) PrintRoleTrusts

func (m *RoleTrustsModule) PrintRoleTrusts(outputFormat string, outputDirectory string, verbosity int)

type Route53Module

type Route53Module struct {
	// General configuration data
	Route53Client *route53.Client

	Caller         sts.GetCallerIdentityOutput
	AWSRegions     []string
	OutputFormat   string
	AWSProfile     string
	CommandCounter console.CommandCounter

	// Main module data
	Records []Record
	// contains filtered or unexported fields
}

func (*Route53Module) PrintRoute53

func (m *Route53Module) PrintRoute53(outputFormat string, outputDirectory string, verbosity int)

type Secret

type Secret struct {
	AWSService  string
	Region      string
	Name        string
	Description string
}

type SecretsModule

type SecretsModule struct {
	// General configuration data
	SecretsManagerClient *secretsmanager.Client
	SSMClient            *ssm.Client

	Caller     sts.GetCallerIdentityOutput
	AWSRegions []string
	AWSProfile string

	// Main module data
	Secrets []Secret

	CommandCounter console.CommandCounter
	// contains filtered or unexported fields
}

func (*SecretsModule) PrintSecrets

func (m *SecretsModule) PrintSecrets(outputFormat string, outputDirectory string, verbosity int)

func (*SecretsModule) Receiver

func (m *SecretsModule) Receiver(receiver chan Secret, receiverDone chan bool)

type SimulatorResult

type SimulatorResult struct {
	AWSService string
	Query      string
	Principal  string
	Decision   string
}

type StatementEntry

type StatementEntry struct {
	Effect    string      `json:"Effect"`
	Action    ListOfItems `json:"Action"`
	Resource  ListOfItems `json:"Resource"`
	Condition ListOfItems `json:"Condition"`
}

type User

type User struct {
	AWSService       string
	Type             string
	Arn              string
	Name             string
	AttachedPolicies []string
	InlinePolicies   []string
}

type UserKeys

type UserKeys struct {
	Username string
	Key      string
}

Jump to

Keyboard shortcuts

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