CodeBuild Невозможно получить AWS учетные данные в скрипте Gradle - PullRequest
0 голосов
/ 02 марта 2020

Я пытаюсь использовать плагин maven-publi sh для загрузки моего артефакта в S3, но мой сценарий не может получить учетные данные AWS. После этого вопроса: Как использовать цепочку учетных данных AWS по умолчанию для репозитория Maven с поддержкой S3 в сборке Gradle? Также пробовали DefaultAWSCredentialsProviderChain, но все они не работали. В основном не удалось получить учетные данные aws в сценарии сборки кода. Любые советы приветствуются.

Журналы CodeBuild:

02:40:37.373 [DEBUG] [com.amazonaws.services.s3.AmazonS3Client] Region for my-repo is us-east-1
02:40:37.373 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))
02:40:37.373 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey)
02:40:37.373 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from com.amazonaws.auth.profile.ProfileCredentialsProvider@124705d: profile file cannot be null
02:40:39.376 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@74a7b8dc: Unable to load credentials from service endpoint
02:40:39.376 [DEBUG] [com.amazonaws.services.s3.S3CredentialsProviderChain] No credentials available; falling back to anonymous access
02:40:39.376 [DEBUG] [com.amazonaws.request] Sending Request: PUT https://my-repo.s3.amazonaws.com /releases/com/mycompany/common/0.0.1/common-0.0.1.pom Headers: (x-amz-acl: bucket-owner-full-control, User-Agent: aws-sdk-java/1.11.407 Linux/4.14.152-98.182.amzn1.x86_64 OpenJDK_64-Bit_Server_VM/11.0.3+7 java/11.0.3 groovy/2.5.4 kotlin/1.3.20, amz-sdk-invocation-id: 057fae4d-67c5-4256-5804-7b17a09bba76, Content-Length: 2967, Content-Type: application/octet-stream, ) 
02:40:39.376 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from EnvironmentVariableCredentialsProvider: Unable to load AWS credentials from environment variables (AWS_ACCESS_KEY_ID (or AWS_ACCESS_KEY) and AWS_SECRET_KEY (or AWS_SECRET_ACCESS_KEY))
02:40:39.376 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from SystemPropertiesCredentialsProvider: Unable to load AWS credentials from Java system properties (aws.accessKeyId and aws.secretKey)
02:40:39.376 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from com.amazonaws.auth.profile.ProfileCredentialsProvider@124705d: profile file cannot be null
02:40:41.378 [DEBUG] [com.amazonaws.auth.AWSCredentialsProviderChain] Unable to load credentials from com.amazonaws.auth.EC2ContainerCredentialsProviderWrapper@74a7b8dc: Unable to load credentials from service endpoint
02:40:41.378 [DEBUG] [com.amazonaws.services.s3.S3CredentialsProviderChain] No credentials available; falling back to anonymous access

build.gradle

import com.amazonaws.auth.*

buildscript {
    repositories {
        mavenCentral()
    }
    dependencies {
        classpath 'com.amazonaws:aws-java-sdk:1.11.645'
        classpath 'com.amazonaws:aws-java-sdk-core:1.11.645'
        classpath 'com.amazonaws:aws-java-sdk-sts:1.11.645'
    }
}
plugins {
   ...
   id 'maven-publish'
}
publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
    repositories {
        maven {
            url "s3://my-repo/releases"
            authentication {
                awsIm(AwsImAuthentication)
            }
        }
    }
}

1 Ответ

0 голосов
/ 02 марта 2020

Получил это работает. Оставил приведенный выше код и изменил мой buildspe c .yml на:

      - export AWS_ACCESS_KEY_ID=$(echo $temp_role | jq .Credentials.AccessKeyId)
      - export AWS_SECRET_ACCESS_KEY=$(echo $temp_role | jq .Credentials.SecretAccessKey)
      - export AWS_SESSION_TOKEN=$(echo $temp_role | jq .Credentials.SessionToken)
      - docker run -i --rm -w /opt/gradle -v $PWD:/opt/gradle -v $HOME/.gradle:/root/.gradle gradle:5.4-jdk11 ./gradlew publish

Обновление: работало один раз, а теперь снова не работает. Не уверен, что здесь происходит. Все еще расследую.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...