クライアントアプリケーションと OSS 間の通信は、Transport Layer Security (TLS) を使用して暗号化されます。TLS は、インターネットを介したクライアントとサーバー間の通信のプライバシーとデータ整合性を保証する標準の暗号化プロトコルです。OSS サーバーで必要な TLS バージョンと暗号スイートを設定できます。設定が完了すると、クライアントは指定された TLS バージョンと暗号スイートのみを使用して OSS と通信できます。これにより、通信リンクのセキュリティ要件を満たすことができます。
前提条件
Resource Access Management (RAM) ユーザーには、次の権限が必要です: oss:PutTLSVersion および oss:GetTLSVersion。詳細については、「RAM ユーザーへのカスタムポリシーのアタッチ」をご参照ください。
TLS バージョン
TLS は、1.0、1.1、1.2、1.3 の 4 つのバージョンをサポートしています。次の表に、各バージョンのシナリオとサポートされている主要なブラウザを示します。
プロトコル | 説明 | シナリオ | サポートされている主要なブラウザ |
TLS 1.0 | 主に使用される暗号化アルゴリズムは RSA、DES、3DES です。TLS 1.0 にはセキュリティ上の脆弱性があり、BEAST や POODLE などの攻撃を受けやすいです。最新のネットワーク接続に対して十分な保護を提供できなくなり、Payment Card Industry Data Security Standard (PCI DSS) コンプライアンスを満たしていません。 | セキュリティ上の脆弱性のため、TLS 1.0 はもはや広く推奨されていません。ほとんどの場合、より安全な TLS バージョンにアップグレードしてください。 |
|
TLS 1.1 | このバージョンではセキュリティが向上し、既知の脆弱性がいくつか修正され、AES、RSA、SHA-256 などのより強力な暗号化アルゴリズムのサポートが追加されています。 | 比較的高度なセキュリティを必要とするが、最新の TLS 機能を必要としない環境に適しています。 |
|
TLS 1.2 | このバージョンでは、セキュリティがさらに強化され、Server Name Indication (SNI) や拡張ハンドシェイクプロトコルなどの新機能が追加されています。サポートされている暗号化アルゴリズムには、AES-GCM、AES-CBC、ECDHE が含まれます。 | Web アプリケーション、e コマース Web サイト、電子メール、仮想プライベートネットワーク (VPN) など、最も一般的なセキュアな通信シナリオに適しています。 |
|
TLS 1.3 | このバージョンでは、セキュリティ、パフォーマンス、プライバシーが大幅に向上しています。安全でない暗号化アルゴリズムをいくつか削除し、より強力なキー交換および暗号化アルゴリズムを追加し、ハンドシェイクのレイテンシを短縮し、より優れた前方秘匿性および認証メカニズムを提供します。 | 金融機関、大手インターネット企業、政府機関など、高いセキュリティ、優れたパフォーマンス、プライバシー保護を必要とするシナリオに適しています。 |
|
使用上の注意
バケットに許可される TLS バージョンを TLS 1.0 または TLS 1.1 のみに設定しないでください。少なくとも主流のバージョンである TLS 1.2 を含める必要があります。
TLS バージョン設定を有効にしない場合、デフォルトでバージョン 1.0、1.1、1.2 がサポートされますが、バージョン 1.3 はサポートされません。TLS バージョン設定を有効にすると、バージョン 1.0、1.1、1.2、1.3 を選択できます。OSS コンソールで初めて TLS バージョンを設定する場合、主流のバージョンであるため、デフォルトで TLS 1.2 が選択されます。TLS 1.2 を選択しない場合、一部の主流のクライアントは OSS にアクセスできません。
TLS バージョンを TLS 1.2 から TLS 1.1 または TLS 1.0 にダウングレードしたり、TLS バージョン設定を無効にしたりすると、セキュリティとコンプライアンスの問題が発生する可能性があります。注意して進めてください。
TLS バージョンを無効にする前に、そのバージョンのみに依存するクライアントがないことを確認してください。
方法
関連 API
このトピックで説明されている操作は、API を呼び出すことによって実装されます。アプリケーションで高度なカスタマイズが必要な場合は、REST API リクエストを直接送信できます。REST API リクエストを送信するには、署名を計算するためのコードを手動で記述する必要があります。詳細については、「PutBucketHttpsConfig」および「GetBucketHttpsConfig」をご参照ください。
よくある質問
現在使用中の TLS バージョンを確認する方法
クライアントが TLS バージョンを指定しない場合、次のコマンドを実行して、クライアントとサーバー間でネゴシエートされた TLS バージョンを確認できます。
openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint>コード例のパラメーターは次のとおりです:
パラメーター | 説明 |
Bucket | OSS バケットの名前。 |
Endpoint | パブリックエンドポイント、内部エンドポイント、またはカスタムドメイン名。 |
返された結果で TLS バージョンを確認できます。

TLS バージョンが正常に設定されたかどうかを確認する方法
TLS 1.2 のみを使用してアクセスを許可するようにバケットを設定した場合、次の 3 つのシナリオで設定が成功したことが示されます:
TLS 1.2 を指定するクライアントは、サーバーに正常にアクセスできます。
openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint> -tls1_2コード例のパラメーターは次のとおりです:
パラメーター
説明
Bucket
OSS バケットの名前。
Endpoint
パブリックエンドポイント、内部エンドポイント、またはカスタムドメイン名。
次の結果が返されます:

TLS 1.2 をサポートしているがバージョンを指定しないクライアントは、サーバーに正常にアクセスできます。
openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint>次の結果が返されます:

TLS 1.1 など、TLS 1.2 以外のバージョンを指定するクライアントは、サーバーにアクセスできません。
openssl s_client -connect <Bucket>.<Endpoint>:443 -servername <Bucket>.<Endpoint> -tls1_1次の結果が返されます:
