EC2インスタンスでyumコマンドを打った時に403エラーが返ってきた件
|
EC2インスタンスで yum install
をしたところ、なぜか次のようなエラーが返ってきました。
Could not retrieve mirrorlist http://repo.ap-northeast-1.amazonaws.com/latest/main/mirror.list error was
14: HTTP Error 403 - Forbidden
このままだと新しいパッケージをインストールできないので、調査しました。
原因…VPCエンドポイントの設定
EC2インスタンスで403エラーとなる原因の一つとして、インスタンスから外へ向かう通信がうまくいっていない可能性が考えられます。
セキュリティーグループのアウトバウンド設定、Elastic IP、パブリックIPのアサイン状況など確認しましたが、問題ありませんでした。
落とし穴だったのが、AWSの場合はVPCにS3エンドポイントがあると、S3でリポジトリファイルが保存されるため、yumコマンドが失敗するとのことです。
解決策…VPCエンドポイントのポリシー修正
repo.ap-northeast-1.amazonaws.com との通信を許可するため、VPCエンドポイントのResouceに下記を追記します。
"arn:aws:s3:::repo.ap-northeast-1.amazonaws.com",
"arn:aws:s3:::repo.ap-northeast-1.amazonaws.com/*"
例:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": "*",
"Action": "*",
"Resource": [
"arn:aws:s3:::repo.ap-northeast-1.amazonaws.com",
"arn:aws:s3:::repo.ap-northeast-1.amazonaws.com/*"
]
}
]
}
これで yumコマンドが通るようになりました。
同じ要領で、マカレルエージェントのインストールを行うには次のポリシーを許可する必要があります。
"arn:aws:s3:::yum.mackerel.io",
"arn:aws:s3:::yum.mackerel.io/*",