64 lines
3.7 KiB
Go
64 lines
3.7 KiB
Go
package aws
|
|
|
|
import (
|
|
"github.com/aws/aws-sdk-go/service/iam"
|
|
"github.com/cloudskiff/driftctl/pkg/alerter"
|
|
"github.com/cloudskiff/driftctl/pkg/resource"
|
|
"github.com/cloudskiff/driftctl/pkg/terraform"
|
|
|
|
"github.com/aws/aws-sdk-go/service/ec2"
|
|
"github.com/aws/aws-sdk-go/service/lambda"
|
|
"github.com/aws/aws-sdk-go/service/rds"
|
|
"github.com/aws/aws-sdk-go/service/route53"
|
|
)
|
|
|
|
const RemoteAWSTerraform = "aws+tf"
|
|
|
|
/**
|
|
* Initialize remote (configure credentials, launch tf providers and start gRPC clients)
|
|
* Required to use Scanner
|
|
*/
|
|
func Init(alerter *alerter.Alerter) error {
|
|
provider, err := NewTerraFormProvider()
|
|
if err != nil {
|
|
return err
|
|
}
|
|
|
|
factory := AwsClientFactory{config: provider.session}
|
|
|
|
terraform.AddProvider(terraform.AWS, provider)
|
|
|
|
resource.AddSupplier(NewS3BucketSupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewS3BucketAnalyticSupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewS3BucketInventorySupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewS3BucketMetricSupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewS3BucketNotificationSupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewS3BucketPolicySupplier(provider.Runner().SubRunner(), factory))
|
|
resource.AddSupplier(NewEC2EipSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewEC2EipAssociationSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewEC2EbsVolumeSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewEC2EbsSnapshotSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewRoute53ZoneSupplier(provider.Runner().SubRunner(), route53.New(provider.session)))
|
|
resource.AddSupplier(NewRoute53RecordSupplier(provider.Runner().SubRunner(), route53.New(provider.session)))
|
|
resource.AddSupplier(NewEC2InstanceSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewEC2AmiSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewEC2KeyPairSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewLambdaFunctionSupplier(provider.Runner().SubRunner(), lambda.New(provider.session)))
|
|
resource.AddSupplier(NewDBSubnetGroupSupplier(provider.Runner().SubRunner(), rds.New(provider.session)))
|
|
resource.AddSupplier(NewDBInstanceSupplier(provider.Runner().SubRunner(), rds.New(provider.session)))
|
|
resource.AddSupplier(NewVPCSecurityGroupSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewIamUserSupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamUserPolicySupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamUserPolicyAttachmentSupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamAccessKeySupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamRoleSupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamPolicySupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamRolePolicySupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewIamRolePolicyAttachmentSupplier(provider.Runner().SubRunner(), iam.New(provider.session)))
|
|
resource.AddSupplier(NewVPCSecurityGroupRuleSupplier(provider.Runner().SubRunner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewVPCSupplier(provider.Runner(), ec2.New(provider.session)))
|
|
resource.AddSupplier(NewSubnetSupplier(provider.Runner(), ec2.New(provider.session)))
|
|
|
|
return nil
|
|
}
|