現象
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を実行できる権限をもっていない
- コマンドプロンプトで
> whoami
ec-hogehoge\administrator
つまり通常のコマンドプロンプトではadministratorで実行していることが確認できる
Jenkinsのシェルの実行で
> whoami
とすると違うユーザー名が表示されるため、administratorに変更する必要がある
対処法
Jenkinsの実行ユーザーをadministratorに変更する
- [コントロールパネル]-[システムとセキュリティ]-[管理ツール]-[サービス]
- Jenkinsの項目を右クリック → プロパティ → 上のタブからログオンを選択
- アカウント横の参照
- 選択するオブジェクト名を入力してくださいに「administrator」を入力する(先ほど調べたユーザー名を入力する)
- 名前の確認
- OK
OK
Jenkinsを再起動する
サービスの中のJenkinsを右クリック → 再起動確認
> aws s3 ls
Jenkins上でS3のバケット一覧が取得できれば、OKです
ちなみに
IAMの設定が出来ていないと、config profileが本当に存在していなくてアップロード出来ないです
その場合はIAM(認証情報)のセットアップを行ってください