クライアントアプリケーションとObject Storage Service (OSS) 間の通信は、トランスポート層セキュリティ (TLS) プロトコルを使用して暗号化されます。 TLSは、インターネットを介して通信するクライアントとサーバー間のプライバシーとデータの整合性を保証する標準的な暗号プロトコルです。 OSSサーバーを使用してTLSバージョンを設定できます。 TLSバージョンを設定すると、クライアントは設定されたTLSバージョンのみを使用して、通信リンクのセキュリティ要件を満たすためにOSSとの間でリクエストを送受信できます。
前提条件
RAMユーザーには、oss:PutTLSVersion
およびoss:GetTLSVersion
の権限が付与されます。 詳細については、「RAMユーザーへのカスタムポリシーのアタッチ」をご参照ください。
TLSバージョン
TLSプロトコルは、TLS 1.0、TLS 1.1、TLS 1.2、およびTLS 1.3のバージョンをサポートしています。 次の表に、各バージョンの使用シナリオと、各バージョンをサポートする主流のブラウザを示します。
Version | 説明 | シナリオ | 主流ブラウザ |
TLS 1.0 | 使用される主な暗号化アルゴリズムには、RSA、DES、および3DESが含まれます。 TLS 1.0には特定のセキュリティ脆弱性があり、BEASTやPOODLE攻撃などのさまざまな攻撃に対して脆弱です。 TLS 1.0は、ネットワーク接続の強力なセキュリティを確保できず、Payment Card Industry Data security Standard (PCI DSS) のコンプライアンス要件を満たしていません。 | TLS 1.0は、セキュリティの脆弱性のため、ネットワーク保護には推奨されません。 ほとんどの場合、できるだけ早い機会にTLS 1.0を安全なバージョンに更新することをお勧めします。 |
|
TLS 1.1 | TLS 1.1は、ネットワーク接続のセキュリティを向上させ、いくつかの既知の脆弱性を修正し、AES、RSA、SHA-256などのより強力な暗号化アルゴリズムをサポートします。 | TLS 1.1は、比較的高いレベルのセキュリティを必要とするが、最新のTLS機能を必要としない環境に適しています。 |
|
TLS 1.2 | TLS 1.2は、ネットワーク接続のセキュリティをさらに強化し、サーバー名表示 (SNI) やハンドシェイクプロトコルなどの新機能を起動します。 TLS 1.2は、AES-GCM、AES-CBC、ECDHEなど、より多くの暗号化アルゴリズムをサポートします。 | TLS 1.2は、webアプリケーション、eコマースwebサイト、電子メール、仮想プライベートネットワーク (VPN) など、最も一般的な安全な通信シナリオに適しています。 |
|
TLS 1.3 | TLS 1.3は、セキュリティ、パフォーマンス、プライバシーを大幅に向上させます。 TLS 1.3は、安全でない暗号化アルゴリズムをサポートしなくなりました。 ハンドシェイクプロセスの遅延を低減する、より強力な鍵交換アルゴリズムおよび暗号化アルゴリズムをサポートし、また、より良好な前方秘密および認証メカニズムを提供する。 | TLS 1.3は、金融機関、大規模なインターネット企業、政府機関など、高いセキュリティ、パフォーマンス、プライバシー保護が必要なシナリオに適しています。 |
|
使用上の注意
許可されているTLSバージョンをTLS 1.0またはバケットのTLS 1.1のみに設定しないことを推奨します。 少なくともTLS 1.2を含めることを推奨します。
TLS 1.2が主流バージョンであるため、OSSはTLS 1.2をデフォルトバージョンとして指定します。 TLS 1.2を選択しない場合、一部のメインストリームクライアントはOSSにアクセスできません。
許可されているTLSバージョンをバケットのTLS 1.3のみに設定した場合、OSSコンソールを使用してバケットにアクセスすることはできません。
TLSバージョンからTLSバージョンまたはTLSバージョンへのTLS 1.2の変更、TLSバージョン管理の無効化など、TLS 1.1をダウングレードすると、セキュリティとコンプライアンスの問題が発生する可能性があります。 操作を実行するときは注意して続行してください。
TLSバージョンを無効にする前に、クライアントが無効にするTLSバージョンのみを使用しないようにしてください。
手順
OSSコンソールの使用
OSS APIの使用
FAQ
バケットの現在のTLSバージョンを確認するにはどうすればよいですか?
クライアントがTLSバージョンを指定していない場合は、次のコマンドを実行して、クライアントとサーバーの間で使用されている現在のTLSバージョンを確認できます。
openssl s_client -connect <Bucket> 。<Endpoint>:443 -servername <Bucket> 。<Endpoint>
コマンドのパラメーターについて、次の表に説明します。
パラメーター | 説明 |
バケット | OSS バケットの名前。 |
エンドポイント | バケットのパブリックエンドポイント、内部エンドポイント、またはカスタムドメイン名。 |
応答からTLSバージョンを取得できます。
TLSバージョンが正常に設定されたかどうかを判断するにはどうすればよいですか。
許可されているTLSバージョンがバケットのTLS 1.2のみに設定されている場合、次のシナリオが発生する可能性があります。
クライアントがTLS 1.2を許可すると指定した場合、次のコマンドを実行すると、サーバーに正常にアクセスできます。
openssl s_client -connect <Bucket> 。<Endpoint>:443 -servername <Bucket> 。<Endpoint> -tls1_2
コマンドのパラメーターについて、次の表に説明します。
パラメーター
説明
バケット
OSS バケットの名前。
エンドポイント
バケットのパブリックエンドポイント、内部エンドポイント、またはカスタムドメイン名。
レスポンス例:
クライアントがTLSバージョンを指定していないが、クライアントがTLS 1.2をサポートしている場合、次のコマンドを実行すると、サーバーに正常にアクセスできます。
openssl s_client -connect <Bucket> 。<Endpoint>:443 -servername <Bucket> 。<Endpoint>
レスポンス例:
クライアントがTLSバージョン以外のTLS 1.2 (TLS 1.1など) を指定している場合、次のコマンドを実行するとサーバーにアクセスできません。
openssl s_client -connect <Bucket> 。<Endpoint>:443 -servername <Bucket> 。<Endpoint> -tls1_1
レスポンス例: