diff --git a/server/constants/env.go b/server/constants/env.go index cc1ddfc..c0af6a3 100644 --- a/server/constants/env.go +++ b/server/constants/env.go @@ -22,11 +22,11 @@ const ( // EnvKeyDatabaseURL key for env variable DATABASE_URL EnvKeyDatabaseURL = "DATABASE_URL" // EnvAwsRegion key for env variable AWS REGION - EnvAwsRegion = "REGION" - // EnvAwsAccessKey key for env variable AWS_ACCESS_KEY - EnvAwsAccessKey = "AWS_ACCESS_KEY" - // EnvAwsAccessKey key for env variable AWS_SECRET_KEY - EnvAwsSecretKey = "AWS_SECRET_KEY" + EnvAwsRegion = "AWS_REGION" + // EnvAwsAccessKeyID key for env variable AWS_ACCESS_KEY_ID + EnvAwsAccessKeyID = "AWS_ACCESS_KEY_ID" + // EnvAwsAccessKey key for env variable AWS_SECRET_ACCESS_KEY + EnvAwsSecretAccessKey = "AWS_SECRET_ACCESS_KEY" // EnvKeyDatabaseName key for env variable DATABASE_NAME EnvKeyDatabaseName = "DATABASE_NAME" // EnvKeyDatabaseUsername key for env variable DATABASE_USERNAME diff --git a/server/db/providers/dynamodb/provider.go b/server/db/providers/dynamodb/provider.go index 7457613..0caa6ea 100644 --- a/server/db/providers/dynamodb/provider.go +++ b/server/db/providers/dynamodb/provider.go @@ -1,16 +1,18 @@ package dynamodb import ( + "fmt" "os" - "github.com/authorizerdev/authorizer/server/constants" - "github.com/authorizerdev/authorizer/server/db/models" - "github.com/authorizerdev/authorizer/server/memorystore" "github.com/aws/aws-sdk-go/aws" "github.com/aws/aws-sdk-go/aws/credentials" "github.com/aws/aws-sdk-go/aws/session" "github.com/guregu/dynamo" log "github.com/sirupsen/logrus" + + "github.com/authorizerdev/authorizer/server/constants" + "github.com/authorizerdev/authorizer/server/db/models" + "github.com/authorizerdev/authorizer/server/memorystore" ) type provider struct { @@ -21,8 +23,8 @@ type provider struct { func NewProvider() (*provider, error) { dbURL := memorystore.RequiredEnvStoreObj.GetRequiredEnv().DatabaseURL awsRegion := os.Getenv(constants.EnvAwsRegion) - accessKey := os.Getenv(constants.EnvAwsAccessKey) - secretKey := os.Getenv(constants.EnvAwsSecretKey) + accessKey := os.Getenv(constants.EnvAwsAccessKeyID) + secretKey := os.Getenv(constants.EnvAwsSecretAccessKey) config := aws.Config{ MaxRetries: aws.Int(3), @@ -33,6 +35,16 @@ func NewProvider() (*provider, error) { config.Region = aws.String(awsRegion) } + if accessKey == "" { + log.Debugf("%s not found", constants.EnvAwsAccessKeyID) + return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsAccessKeyID) + } + + if secretKey == "" { + log.Debugf("%s not found", constants.EnvAwsSecretAccessKey) + return nil, fmt.Errorf("invalid aws credentials. %s not found", constants.EnvAwsSecretAccessKey) + } + // custom accessKey, secretkey took first priority, if not then fetch config from aws credentials if accessKey != "" && secretKey != "" { config.Credentials = credentials.NewStaticCredentials(accessKey, secretKey, "") @@ -40,8 +52,6 @@ func NewProvider() (*provider, error) { // static config in case of testing or local-setup config.Credentials = credentials.NewStaticCredentials("key", "key", "") config.Endpoint = aws.String(dbURL) - } else { - log.Info("REGION, AWS_ACCESS_KEY and AWS_SECRET_KEY not found in .env, trying to load default profile from aws credentials") } session := session.Must(session.NewSession(&config)) diff --git a/server/env/env.go b/server/env/env.go index 491e4ee..79777f0 100644 --- a/server/env/env.go +++ b/server/env/env.go @@ -78,8 +78,8 @@ func InitAllEnv() error { osOrganizationName := os.Getenv(constants.EnvKeyOrganizationName) osOrganizationLogo := os.Getenv(constants.EnvKeyOrganizationLogo) osAwsRegion := os.Getenv(constants.EnvAwsRegion) - osAwsAccessKey := os.Getenv(constants.EnvAwsAccessKey) - osAwsSecretKey := os.Getenv(constants.EnvAwsSecretKey) + osAwsAccessKey := os.Getenv(constants.EnvAwsAccessKeyID) + osAwsSecretKey := os.Getenv(constants.EnvAwsSecretAccessKey) // os bool vars osAppCookieSecure := os.Getenv(constants.EnvKeyAppCookieSecure) @@ -129,18 +129,18 @@ func InitAllEnv() error { envData[constants.EnvAwsRegion] = osAwsRegion } - if val, ok := envData[constants.EnvAwsAccessKey]; !ok || val == "" { - envData[constants.EnvAwsAccessKey] = osAwsAccessKey + if val, ok := envData[constants.EnvAwsAccessKeyID]; !ok || val == "" { + envData[constants.EnvAwsAccessKeyID] = osAwsAccessKey } - if osAwsAccessKey != "" && envData[constants.EnvAwsAccessKey] != osAwsRegion { - envData[constants.EnvAwsAccessKey] = osAwsAccessKey + if osAwsAccessKey != "" && envData[constants.EnvAwsAccessKeyID] != osAwsRegion { + envData[constants.EnvAwsAccessKeyID] = osAwsAccessKey } - if val, ok := envData[constants.EnvAwsSecretKey]; !ok || val == "" { - envData[constants.EnvAwsSecretKey] = osAwsSecretKey + if val, ok := envData[constants.EnvAwsSecretAccessKey]; !ok || val == "" { + envData[constants.EnvAwsSecretAccessKey] = osAwsSecretKey } - if osAwsSecretKey != "" && envData[constants.EnvAwsSecretKey] != osAwsRegion { - envData[constants.EnvAwsSecretKey] = osAwsSecretKey + if osAwsSecretKey != "" && envData[constants.EnvAwsSecretAccessKey] != osAwsRegion { + envData[constants.EnvAwsSecretAccessKey] = osAwsSecretKey } if val, ok := envData[constants.EnvKeyAppURL]; !ok || val == "" {