![サードパーティのAWSリソースの管理](https://rvso.com/image/697383/%E3%82%B5%E3%83%BC%E3%83%89%E3%83%91%E3%83%BC%E3%83%86%E3%82%A3%E3%81%AEAWS%E3%83%AA%E3%82%BD%E3%83%BC%E3%82%B9%E3%81%AE%E7%AE%A1%E7%90%86.png)
質問は次のとおりです。サードパーティとして、自分のソフトウェアを顧客の AWS アカウントにデプロイし、プロビジョニングする必要があるリソースへのアクセスを一切許可しないことはできますか? たとえば、いくつかの EC2 インスタンスをプロビジョニングし、アクセスを一切許可しないことはできますか?
この疑問は、ソース コードが顧客によって簡単に読み取れるため、IP が漏洩しないように保護したいという要望から生じます。したがって、ライセンス契約は別として、IP が危険にさらされる可能性があり、これは事業の存続期間のこの段階では商業的に非常に有害となる可能性があります。
私は関連トピックや AWS ドキュメントに関する質問を調べてきましたが、正直なところ、明確な解決策が見つかりません。
ご意見をいただければ幸いです。
答え1
いいえ、AWS アカウントの管理者は完全なアクセス権を持ちます。IAM を使用してアカウントへの単独アクセス権を付与した場合でも、管理者はいつでもその権限を取り消すことができます。
あなたのコードは PHP のような言語で書かれていると思いますか? 難読化ツールを試すこともできますが、これはある程度の保護にはなりますが、大した効果はありません。PHP をコンパイル可能な言語に変更する何らかの変換を試すこともできます。
おそらく最善の解決策は、製品を SAAS として提供することです。
答え2
AMI 経由でサードパーティのサービスを提供する場合、アカウントのプロビジョニングをそのままにしておく必要はありません。つまり、SSH または RDP の詳細を伝えない限り、EC2 インスタンスにアクセスするのが多少難しくなる可能性があります。以前、サードパーティからサービスをレンタルしたことがありますが、ボックスに SSH または RDP で接続するための認証情報は提供されず、Web インターフェイス経由でのみボックスを管理できました。
これまで見たことがないかもしれませんが、AWS Marketplace は、サードパーティのソフトウェアを AWS アカウントで実行できるように設計されており、AWS では、ユーザーが EBS ボリュームを公式 AMI からデタッチして別の AMI に接続したり、個人使用のために AMI を複製したりすることを防ぐなど、サードパーティに対していくつかの保護を組み込んでいます。
残念ながら、AWS Marketplace を使用する場合は、OS レベルの管理を実行するためのアクセスをユーザーに許可する必要があります。実際にどこまで許可されるかはわかりませんが、ルート/管理者アカウントをロックダウンし、通常のユーザーによるアクセスを許可する必要があります。おそらく、このユーザーを chroot すると、ある程度のコード保護が実現できるでしょう。
その良い例として、次のようなプロフェッショナル向けセキュリティ ソフトウェアが挙げられます。 https://aws.amazon.com/marketplace/pp/B01CEYZ5S6
AWS マーケットプレイスを使用して、AWS ユーザーに SaaS 料金を請求することもできます。