0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

なぜAWS CodeArtifact を使うのか?

Posted at

この記事を書いた理由

AWS-SAP(AWS Certified Solutions Architect - Professional) 認定試験問題を解いている中で、AWS のプライベートサブネットにあるインスタンスから、Python などのリポジトリを取得するときに、パブリックサブネットのNAT ゲートウェイを用いずになぜAWS CodeArtifact を使うのかわからなかったから書きました。

前提条件

ある組織が、Amazon SageMaker インスタンスとSageMaker API を使って、機械学習(ML)モデルを開発しています。セキュリティ要件により、SageMaker インスタンスはインターネットから完全に隔離されたVPC にデプロイされています。ML モデルのトレーニングデータは、暗号化されたS3バケットに保存されており、SageMaker APIがAmazon S3 とアクセスするには、インターフェースVPC エンドポイントを介して行われます。
開発プロセス中、特殊なPython パッケージを利用することになり、そのパッケージはPython Package Index(PyPI)リポジトリにホストされています。このような条件で、SageMaker インスタンスをインターネットから確実に隔離したまま、安全にPyPI リポジトリへのアクセスを提供するソリューションとして、AWS CodeArtifact が最も適切だと説明がありました。

NAT ゲートウェイ経由が利用できない理由

NAT ゲートウェイはパブリックサブネットに設置され、プライベートサブネットのインスタンスからインターネット接続を可能にします。つまり、PyPI 以外の接続先にもアクセスできるので、「インターネットから完全に隔離されたVPC」の前提条件が崩れます。

また、PyPI を使った悪意のある攻撃が存在しており、プライベートサブネットのインスタンスがこうしたマルウェアの攻撃を受けたとき、NAT ゲートウェイを経由して外部に機密情報を漏洩することが可能になってしまいます。

AWS CodeArtifact の役割

aws-codeartifact.png
「前提条件」の構成を図解しました。このように、Amazon SageMaker インスタンスはS3 とAWS CodeArtifact とのみ通信可能なので、インターネットから完全に隔離されています。万が一PyPI 経由でインスタンスがマルウェアに感染した場合でも、外部にデータを漏洩できない構造になっています。

このアーキテクチャの効果

このアーキテクチャの効果は、セキュリティを最優先にしつつ、インターネットへの接続を排除することで、データ漏洩のリスクを最小限に抑え、同時にパッケージ管理の効率性を確保している点にあります。

ML で機密性の高い画像や書類を処理したりする場合や、高いコンプライアンス要件に適合させるためにこのアーキテクチャが効果的となります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?