ビルドプロセスでアクセスしたいS3
リポジトリがあります。私のプロジェクトの依存関係のいくつかが含まれています。私のプロジェクトは、指定された役割(Repo_dependent
)を持つEC2インスタンスにデプロイされます。私はThe AWS Access Key Id you provided does not exist in our records. (Service: Amazon S3; Status Code: 403; Error Code: InvalidAccessKeyId; Request ID: 02169BFDCF7AFE10)
例外を取得新しいサーバーを展開する場合GradleでのAWSロール資格情報の取得
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "Stmt1484560548000",
"Effect": "Allow",
"Action": [
"s3:GetObject",
"s3:ListBucket",
"s3:GetBucketLocation"
],
"Resource": [
"arn:aws:s3:::my_bucket",
"arn:aws:s3:::my_bucket/*"
]
}
]
}
:役割は、それに接続されているAccess_Repo
ポリシーを持っています。
私のビルドスクリプトは私の仮定が、私は役割が定義されている方法でその役割や何かにアクセスする方法をEC2インスタンスのいずれかで何かが欠けているということである。この(簡略化のため省略)
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'com.amazonaws:aws-java-sdk:1.11.83'
}
}
import com.amazonaws.auth.*
repositories {
jcenter()
maven {
url "s3://my_bucket.s3.amazonaws.com"
credentials(AwsCredentials) {
def providercreds = new InstanceProfileCredentialsProvider().getCredentials()
accessKey providercreds.getAWSAccessKeyId()
secretKey providercreds.getAWSSecretKey()
}
}
}
です。同じスクリプトをローカルに実行しようとすると、Access_Repo
ポリシーが添付されていて、InstanceProfileCredentialsProvider
を使用する代わりにDefaultAWSCredentialsProviderChain
を使用すると、ビルドは正常に実行されます。しかし、を使用してインスタンスを再デプロイすると、同じ例外が発生しました。
ご協力いただければ幸いです。
更新:
テストAWS CLIを使用してSTSAssumeRoleSessionCredentialsProvider
を使用して行うには、ビルドスクリプトがDefaultAWSCredentialsProviderChain
プロバイダと右の役割を使用していることを示します。ロールにAmazonS3FullAccess
ポリシーを追加すると、私はコードを展開するジェンキンスを使用していた結果
を変更しなかった私の次のリード多分何かが間違って
アップデート2であるということである:私はネットワークをキャプチャしようとした
どの資格情報がAWSに送信されているかを確認するために、GradleとAWS CLIによって異なる資格情報が送信されるように思われるので、Gradleが適切な役割を果たさないという私の元々の仮定に戻ります。
北のバージニア州の地域では、バケツを作成したと思います。ビルドスクリプトの部分では、資格情報の定義をコメントすることができます。私の主張から、IAMの役割ではなく、EC2インスタンス(ローカルドライブ)内のアクセスキーと秘密鍵を検索します。 –
私が理解しているか分からない..資格情報の部分を削除しても問題ありません。 –
それは動作するはずです。コードは、awsの資格情報をローカルで検索していることを示しています。 –