Windows
AWS
S3
Jenkins
aws-cli

WindowsでJenkinsのシェルでAWS CLIが使えない場合の原因と対処法

More than 1 year has passed since last update.

現象

AWS CLIを使い、S3にファイルをアップしたいので

> aws s3 cp hoge.zip s3://hoge/hoge/

とすると

The config profile could not be found

とエラーが出てアップロードできない

しかし、Jenkinsではなくコマンドプロンプトで

> aws s3 cp hoge.zip s3://hoge/hoge/

は成功する

原因

Jenkinsの実行ユーザーがAWS CLIを実行できる権限をもっていない

  1. コマンドプロンプトで
> whoami
ec-hogehoge\administrator

つまり通常のコマンドプロンプトではadministratorで実行していることが確認できる

Jenkinsのシェルの実行で

> whoami

とすると違うユーザー名が表示されるため、administratorに変更する必要がある

対処法

Jenkinsの実行ユーザーをadministratorに変更する

  1. [コントロールパネル]-[システムとセキュリティ]-[管理ツール]-[サービス]
  2. Jenkinsの項目を右クリック → プロパティ → 上のタブからログオンを選択
  3. アカウント横の参照  
  4. 選択するオブジェクト名を入力してくださいに「administrator」を入力する(先ほど調べたユーザー名を入力する)
  5. 名前の確認
  6. OK
  7. OK

  8. Jenkinsを再起動する
    サービスの中のJenkinsを右クリック → 再起動

  9. 確認

> aws s3 ls

Jenkins上でS3のバケット一覧が取得できれば、OKです

ちなみに

IAMの設定が出来ていないと、config profileが本当に存在していなくてアップロード出来ないです

その場合はIAM(認証情報)のセットアップを行ってください

参考 → http://www.task-notes.com/entry/20141026/1414322858