legacy-knowledge-base
公開されました Jun. 30, 2025

AWS S3: Liferayはサーバーサイドの暗号化でx-amz-server-side-encryptionヘッダをサポートしていますか?

written-by

Sorin Pop

How To articles are not official guidelines or officially supported documentation. They are community-contributed content and may not always reflect the latest updates to Liferay DXP. We welcome your feedback to improve How To articles!

While we make every effort to ensure this Knowledge Base is accurate, it may not always reflect the most recent updates or official guidelines.We appreciate your understanding and encourage you to reach out with any feedback or concerns.

legacy-article

learn-legacy-article-disclaimer-text

問題

  • S3バケットをDocuments and Mediaのストアとして使用しています。
  • 私は、暗号化と x-amz-server-side-encryption ヘッダーの存在を必要とするサービスコントロールポリシーで構成しました、次のようなものです:
{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "DenyUploadOfUnencryptedObjectsToS3Bucket",
      "Effect": "Deny",
      "Action": "s3:PutObject",
      "Resource": "*",
      "Condition": {
        "StringNotEquals": {
          "s3:x-amz-server-side-encryption": [
            "AES256",
            "aws:kms"
          ]
        },
        "ArnNotLike": {
          "aws:PrincipalARN": [
            "arn:aws:iam::489415732136:user/test"
          ]
        }
      }
    }
  ]
}

  • この設定をテストすると、以下のエラーが発生します。

原因: com.liferay.document.library.kernel.exception.AccessDeniedException:{errorCode=AccessDenied, errorType=Client, message=Access Denied(Service:Amazon S3; Status Code:403; エラーコード:AccessDenied; リクエストID:ZE1PKQDWJGJVX9RH; S3 Extended Request ID:JulnMKqJqw0L7gRyUu
o1s9lrChprqu36wPPm1/Tr1ZYRkFL+Hu8Hrq6QFF9/E8d5UxbWNMoHA0U=; Proxy: null), requestId=ZE1PKQDWJGVX9RH, statusCode=403}。

  • Liferayがこのx-amz-server-side-encryptionヘッダを提供できているかどうか確認できますでしょうか。

Environment

  • 7.4

解決策

  • この記事を書いている時点では、Liferayはこのヘッダーを設定しないので、バケットオブジェクトをサーバーサイドで暗号化したい場合は、デフォルトのバケット暗号化を活用する必要があります。

    このため、「x-amz-server-side-encryption」ヘッダーの設定が必要なサービスコントロールポリシーが使用できないことも事実です。

  • デフォルトの暗号化を有効にした後にオブジェクトをアップロードする場合:

    PUTリクエストヘッダに暗号化情報が含まれていない場合、Amazon S3はバケットのデフォルト暗号化設定を使用してオブジェクトを暗号化します。
    PUTリクエストヘッダに暗号化情報が含まれている場合、Amazon S3はPUTリクエストの暗号化情報を使用して、Amazon S3に保存する前にオブジェクトを暗号化します。

  • 将来的にLiferayにこの機能を追加する可能性のある機能要求チケットがあります: https://issues.liferay.com/browse/LPS-165937

did-this-article-resolve-your-issue

legacy-knowledge-base