「認証情報が見つかりません」というエラーのため、Jenkins で AWS CLI を使用できません

「認証情報が見つかりません」というエラーのため、Jenkins で AWS CLI を使用できません

私は CI に Jenkins を使用しています。S3 バケットからファイルをプルできるようにする必要があります。jenkins ジョブ内で、jenkins シェルから次の診断を実行します。

cd ~

こうすると/var/lib/jenkinsに移動します

whoami

これはユーザーjenkinsを返します

/var/lib/jenkinsの中に.awsフォルダがあり、そこにはconfigとcredentialsファイルがあるのですが、

aws configure list

私はこれを理解します:

      Name                    Value             Type    Location
      ----                    -----             ----    --------
   profile                <not set>             None    None
access_key                <not set>             None    None
secret_key                <not set>             None    None
    region                <not set>             None    None

.aws フォルダがあり、その 2 つのファイルに正しい情報があるにもかかわらず、そこには何もありません。最初は .aws フォルダを /home/jenkins に配置しようとしましたが、それでもうまくいきませんでした。

では、Jenkins を実際に aws cli で動作させるにはどうすればよいでしょうか?

答え1

資格情報を環境変数としてエクスポートできます。

$ export AWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLE
$ export AWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
$ export AWS_DEFAULT_REGION=us-west-2

見る詳細は、こちらを参照してください。詳細については、Jenkinsの使い方に応じて、EvnInject プラグイン

答え2

この方法は私にとってはうまくいきました:

  1. その中に .aws というディレクトリを作成します/var/lib/jenkins(または、「aws configure」コマンドを使用して aws 資格情報をすでに構成している場合は、ホーム ディレクトリから .aws フォルダーをコピーします)
  2. 次に、下に移動して/var/lib/jenkins/.awssudo shown -R jenkins ./.aws ディレクトリ内のファイルの所有者を変更するように書き込みます。

答え3

Jenkins サーバーの bash 内で AWS 認証情報を更新してください。以下のコマンドを実行します。

# sudo -su jenkins
# aws configure

参考リンク:http://docs.aws.amazon.com/systems-manager/latest/userguide/sysman-ami-jenkins.html

答え4

インスタンス ロールを使用しているときに企業ネットワーク内でこの問題が発生する場合は、プロキシ設定が正しいことを確認してください。

関連情報