私はs3エンドポイントの悲しみを抱えています。インスタンスが初期化されると、docker をインストールできません。詳細:
pub サブネットと private サブネットを持つ VPC に ASG インスタンスを配置しています。適切なルーティングと EIP/NAT がすべて統合されています。プライベート サブネットのインスタンスは、それぞれのパブリック サブネットの NAT にルーティングされたアウトバウンド 0.0.0.0/0 を持っています。パブリック サブネットの NACL は、インターネット トラフィックの入出力を許可し、プライベート サブネットの周りの NACL は、パブリック サブネットからのトラフィックの入出力、インターネットへのトラフィック (および s3 cidr からのトラフィックの入出力) を許可します。かなりロックダウンしたい。
- VPC で DNS とホスト名を有効にしています
- NACL はステートレスであり、エフェメラル ポート範囲で s3 amazon IP cidr ブロックの IN および OUTBOUND ルールを有効にしていることを理解しています (はい、パブとプライベート サブネット間のトラフィックも有効にしています)
- はい、プライベート ルート テーブルで s3 エンドポイントにルートがプロビジョニングされていることを確認しました
- はい、私は確かにそれがs3エンドポイントであり、別の失敗ではなく、悲しみを引き起こしていることを知っています->それを削除してNACLを開くと、yum更新してdockerをインストールできます(予想どおり)私を開く必要がある提案を探していませんNACL、私は VPC ゲートウェイ エンドポイントを使用しています。これは、プライベート サブネットで物事をロックダウンしたままにしたいからです。同様の議論で「すべてのポートで 0.0.0.0/0 を開いたところ、x が機能するようになった」と書かれているように見えるので、これについて言及します。
- docker をインストールして AMI をベイクするだけでよいですか? これで解決できなかったらそうします。私は本当にネットワークをセットアップして、すべてが適切にロックダウンされ、エンドポイントを利用するのが非常に簡単であるように感じたいと思っていました. これは主にネットワーキングの演習であるため、問題の解決と理解を回避するため、これを実行したくありません。
- 他の VPC エンドポイントが完全に機能していることはわかっています -> 自動スケーリング サービス インターフェイス エンドポイントが実行されており (ポリシーに従ってインスタンスが縮小されていることがわかります)、SSM インターフェイス エンドポイントでセッション マネージャーを使用できるようになり、ECR エンドポイントが動作しています。 s3 ゲートウェイ エンドポイントと組み合わせて (イメージ レイヤーが s3 にあるため、s3 ゲートウェイ エンドポイントが必要です) -> NACLS を開いて s3 エンドポイントを削除し、docker をインストールすると、すべてを再びロックして、s3 を戻すため、これが機能することがわかっています。 gatewayendpoint ECR イメージを正常にプルできます。SO s3 ゲートウェイ エンドポイントは、ecr イメージ レイヤーにアクセスするには問題ありませんが、amazon-linux-extra リポジトリにはアクセスできません。
- インスタンスに接続された SG は問題ではありません (インスタンスにはデフォルトのアウトバウンド ルールがあります)
- この 7 年前のスレッドで見たように、ますます寛大なポリシーを s3 エンドポイントに追加しようとしましたが、これでうまくいくはずだと思いました (はい、地域を正しく下塗りしました)。
- このスレッドで説明されているように、解決策は s3 ゲートウェイ ポリシーにあると強く感じていますが、ますます自暴自棄になっているポリシーにはほとんど運がありません。
Amazon EC2 インスタンスが yum を更新または使用できない
別のs3が解決に苦労しています:
私が試してみました:
S3Endpoint:
Type: 'AWS::EC2::VPCEndpoint'
Properties:
PolicyDocument:
Version: 2012-10-17
Statement:
- Effect: Allow
Principal: '*'
Action:
- 's3:GetObject'
Resource:
- 'arn:aws:s3:::prod-ap-southeast-2-starport-layer-bucket/*'
- 'arn:aws:s3:::packages.*.amazonaws.com/*'
- 'arn:aws:s3:::repo.*.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::amazonlinux.*.amazonaws.com/*'
- 'arn:aws:s3:::*.amazonaws.com'
- 'arn:aws:s3:::*.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::*.ap-southeast-2.amazonaws.com/'
- 'arn:aws:s3:::*repos.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::*repos.ap-southeast-2.amazonaws.com/*'
- 'arn:aws:s3:::repo.ap-southeast-2-.amazonaws.com'
- 'arn:aws:s3:::repo.ap-southeast-2.amazonaws.com/*'
RouteTableIds:
- !Ref PrivateRouteTableA
- !Ref PrivateRouteTableB
ServiceName: !Sub 'com.amazonaws.${AWS::Region}.s3'
VpcId: !Ref BasicVpc
VpcEndpointType: Gateway
(ご覧のとおり、非常に絶望的です) 最初のルールは、ECR インターフェイス エンドポイントが s3 からイメージ レイヤーをプルするために必要です。他のすべてのルールは、amazon-linux-extras リポジトリに到達するための試行です。
以下は、SSM エンドポイントを使用してセッション マネージャーに接続して再作成した初期化時に発生する動作です。
https://aws.amazon.com/premiumsupport/knowledge-center/connect-s3-vpc-endpoint/
yum のインストールまたは更新ができません
root@ip-10-0-3-120 bin]# yum install docker -y
読み込まれたプラグイン: extras_suggestions、langpacks、priorities、update-motd ミラーリストを取得できませんでしたhttps://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/core/latest/ x86_64/mirror.listエラーは 14 でした: HTTPS エラー 403 - 禁止されています
構成されたリポジトリの 1 つが失敗し (不明)、yum には続行するのに十分なキャッシュ データがありません。この時点で yum ができる唯一の安全なことは、失敗することです。これを「修正」するには、いくつかの方法があります。
1. Contact the upstream for the repository and get them to fix the problem.
2. Reconfigure the baseurl/etc. for the repository, to point to a working
upstream. This is most often useful if you are using a newer
distribution release than is supported by the repository (and the
packages for the previous distribution release still work).
3. Run the command with the repository temporarily disabled
yum --disablerepo=<repoid> ...
4. Disable the repository permanently, so yum won't use it by default. Yum
will then just ignore the repository until you permanently enable it
again or use --enablerepo for temporary usage:
yum-config-manager --disable <repoid>
or
subscription-manager repos --disable=<repoid>
5. Configure the failing repository to be skipped, if it is unavailable.
Note that yum will try to contact the repo. when it runs most commands,
so will have to try and fail each time (and thus. yum will be be much
slower). If it is a very temporary problem though, this is often a nice
compromise:
yum-config-manager --save --setopt=<repoid>.skip_if_unavailable=true
リポジトリの有効な baseurl が見つかりません: amzn2-core/2/x86_64
そしてできません:
amazon-linux-extras install docker
Catalog is not reachable. Try again later.
https://amazonlinux-2-repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64-v2.jsonのカタログ、https://amazonlinux-2- repos-ap-southeast-2.s3.ap-southeast-2.amazonaws.com/2/extras-catalog-x86_64.json トレースバック (最後の最後の呼び出し): ファイル "/usr/lib/python2.7/site-packages/amazon_linux_extras/software_catalog.py"、131 行目、fetch_new_catalog リクエスト = urlopen(url) ファイル "/usr/lib64/python2. 7/urllib2.py"、154 行目、urlopen return opener.open(url, data, timeout) ファイル "/usr/lib64/python2.7/urllib2.py"、435 行目、open response = meth(req, response) ファイル "/usr/lib64/python2.7/urllib2.py", 行 548, in http_response 'http', request, response, code, msg, hdrs) ファイル "/usr/lib64/python2.7/urllib2. py"、473 行目、エラー return self._call_chain(*args) ファイル "/usr/lib64/python2.7/urllib2.py"、407 行目、_call_chain 結果 = func(*args) ファイル "/usr/lib64 /python2.7/urllib2.py"、556 行目、http_error_default で HTTPError(req.get_full_url(), code, msg, hdrs,fp) HTTPError: HTTP エラー 403: 禁止されています
私が見逃した落とし穴はありますか?私はここで非常に立ち往生しています。基本的な VPC ネットワーキング、NACL、および VPC エンドポイント (少なくとも使用したもの) に精通しており、トラブルシューティングに従いました (ただし、概説どおりにすべてをセットアップしました)。
ここまたはミラーリストの問題はs3ポリシーだと思います。わざわざ読んでくれてありがとう!考え?