Function Computeは、セキュリティ保護の作業負荷を軽減するためのセキュリティメカニズムを提供します。 ビジネスのセキュリティを確保するには、ビジネス要件に基づいてFunction Computeが提供するセキュリティメカニズムを使用する必要があります。
ID資格情報などの認証情報のセキュリティ
ID資格情報などの認証情報が漏洩した場合、ビジネスセキュリティを確保できません。 あなたが使用 Resource Access Management (RAM) を使用して、最小権限の原則に基づいてRAMユーザーに権限を付与します。 一時的なID資格情報であるSecurity Token Service (STS) トークンを使用することもできます。 これにより、ID資格情報などの認証情報の漏洩リスクが軽減されます。
関数コードとレイヤーのセキュリティ
Function Computeは、認証されたユーザーに一時的なコードとダウンロードURLを提供します。 コードとライブラリのセキュリティを保護するために、一時ダウンロードURLが漏洩しないようにする必要があります。
ID資格情報などの認証情報をコードやレイヤーに記録しないでください。 そうでなければ、アイデンティティ証明書が漏洩する可能性がある。
コードとレイヤーのサイズに注意してください。 コードとレイヤーのサイズが大きすぎると、関数インスタンスのコールドスタート時間が延長されたり、起動に失敗したりすることがあります。
関数インスタンスは、関数呼び出しの間で再利用され得る。 以前の呼び出しは、グローバル変数、環境変数、およびファイルシステムへの変更を引き起こす可能性があります。 各呼び出しが新しい環境で処理されると仮定することはできません。
関数インスタンスは、関数呼び出しの間で再利用できません。 以前の呼び出しは、グローバル変数、環境変数、およびファイルシステムへの変更を引き起こす可能性があります。 変更が別の呼び出しに対して有効であると仮定することはできません。
非同期呼び出しと非同期タスクの場合、エラーが発生したときにFunction Computeが関数の実行を再試行します。 イベントは、少なくとも1回処理することができる。 ただし、同じイベントが1つの呼び出しのみをトリガーすると仮定することはできません。
関数が実行され、コンピューティング結果が返されると、Function Computeは関数を実行する関数インスタンスをフリーズします。 呼び出し結果が返されたときに、すべての非同期プロセス、スレッド、およびコルーチンが実行されると仮定することはできません。 さらに、非同期で書き込まれたログが更新されると仮定することはできません。
Function Compute内の単一の関数インスタンスは、複数の呼び出し要求を同時に処理できます。 ただし、関数インスタンスの同時実行性はランタイム言語に関連しています。 たとえば、Node.jsはシングルスレッドモードのみをサポートしています。 Pythonにはグローバルインタプリタロック (GIL) があり、計算集約型の呼び出し要求を同時に処理することはできません。 すべての関数インスタンスの同時実行性が期待どおりであると仮定することはできません。
関数呼び出しには複数のリソース制限があります。 たとえば、呼び出し要求または応答の
ヘッダーのサイズは4 KBを超えることはできません。環境変数のサイズは4 KBを超えることはできません。また、要求本体のサイズは16 MBを超えることはできません。 リソース制限は調整される場合があり、公式文書の対象となります。 リソース制限に達した場合、コードは期待どおりに実行されない可能性があります。ランタイム環境のバージョンがFunction Computeでサポートされている期間は、コミュニティでサポートされている期間と同期されます。 ランタイム環境のバージョンがコミュニティでサポートされなくなった場合、Function Computeは関数の実行などの特定のサービスの提供を停止し始めます。 Function Computeでサポートされていないランタイム環境のバージョンは、できるだけ早く使用を停止する必要があります。
コードとライブラリが安全であることを確認し、脆弱性を修正し、できるだけ早い機会に機能を更新する必要があります。
機能設定のセキュリティ
関数リソース
関数の最大実行時間を適切な値に設定する必要があります。 エラーが発生した場合、より長い期間はより多くの料金を生み出す可能性があります。 より短い期間は、サービス可用性に影響を及ぼし得る。
関数の最大メモリサイズを適切な値に設定する必要があります。 より大きなメモリサイズは、より多くの料金を発生し得る。 メモリサイズが小さいと、サービスの可用性や実行パフォーマンスに影響する場合があります。
単一の関数インスタンスの呼び出し同時実行性を適切な値に設定する必要があります。 同時実行性が高いと、サービスの可用性や実行パフォーマンスに影響する場合があります。
エラーが発生した場合に追加料金が発生しないように、最大リソースクォータを適切な値に設定する必要があります。
アクセス権限
正しく使用する必要があります RAMを使用してRAMユーザーにFunction Computeへのアクセス権限を付与し、セキュリティリスクを軽減します。
各機能のアクセス許可を適切に設定する必要があります。 たとえば、特定の仮想プライベートクラウド (VPC) 経由でのみ関数にアクセスできるように指定できます。
関数が予期せず呼び出されないように、トリガーのアクセス許可を適切に設定する必要があります。
外部アクセスの関数
外部ネットワークにアクセスする機能のアクセスモードを適切に設定する必要があります。 たとえば、機密情報の漏洩を避けるために、関数が指定されたVPCのみにアクセスできるようにすることができます。
Alibaba Cloudサービスへのアクセス
Function Computeの関数を実行するRAMロールに、Object Storage Service (OSS) やTablestoreなどのAlibaba Cloudサービスにアクセスする権限を適切に付与する必要があります。 これにより、機密情報の漏洩が防止される。
Function ComputeにマウントされているApsara File Storage NASファイルシステムの場合、データはVPC経由で送信され、データのセキュリティが確保されます。 ビジネス要件に基づいて、送信暗号化機能を有効にできます。 詳細については、「NFSファイルシステムの転送中の暗号化」をご参照ください。