S3 オブジェクト ストレージの設定

このページの内容

お困りですか?

アトラシアン コミュニティをご利用ください。

コミュニティに質問

チームのデータ セットが大きい、または増加している場合は、スケーラビリティを高めるために添付ファイルを S3 オブジェクト ストレージに保存することをご検討ください。

このタイプのストレージは、従来のファイル システムとは異なり、添付ファイル データ用に特別に設計され、最適化されています。

現在、アトラシアンでは、添付ファイル オブジェクト ストレージの Amazon S3 をサポートしています 。これを使用すると、このマネージド オブジェクト ストレージのすぐに使える機能と利点を活用できるようになります。

On this page:

オブジェクト ストレージの仕組みを図に示します。Confluence にアップロードされた添付ファイルは Amazon S3 バケットに保存され、そこから取得されます。


オブジェクト ストレージが適切かどうかを確認する

アトラシアンでは、オブジェクト ストレージ ソリューションの改善に引き続き取り組んでいます。このバージョンの要件と制限をしっかりと確認して、自分に適しているかどうかを確認することをお勧めします。

要件

Amazon S3 オブジェクト ストレージを使用するための要件は次のとおりです。

  • Data Center ライセンスを使用している必要があります。

  • Confluence を AWS にプロビジョニングすることを計画しているか、すでに AWS で Confluence を実行している必要があります。この機能は、オンプレミス デプロイや AWS で Confluence を実行していない顧客にはサポートされていません。

  • Confluence の添付ファイルを保持するには、専用の Amazon S3 バケットが必要です。S3 バケットを作成して設定し、Confluence に接続する方法の詳細については、こちらのページをご覧ください。

既存のお客様の場合: 添付ファイル データを Amazon S3 に移行する必要があります。方法については「添付ファイルのストレージの設定」をご参照ください。

制限事項

  • 現在、Amazon S3 は Confluence がサポートしている唯一のオブジェクト ストレージ ソリューションです。
  • S3 オブジェクト ストレージは添付ファイル データ専用です。設定データなどの他のデータには、引き続きファイル システム ストレージを使用する必要があります。

  • 添付ファイル データをファイル システムから Amazon S3 に移行したり、Amazon S3 からファイル システムや別のストレージ メディアに移行したりする場合に、現在アトラシアンがサポートしている方法はありません。一般的には、すべての移行作業に Amazon DataSync が推奨されます。

  • 一時認証情報を使用して AWS への認証を行うと、情報が変更されるたびに Confluence を再起動する必要があります。この問題を追跡するには、「CONFSERVER-81610 - 課題情報を取得中... ステータス」をご確認ください。
  • Amazon S3 オブジェクト ストレージが設定されていて、実行中の添付ファイル関連タスクに 50 個を超える添付ファイルが含まれている場合、インスタンスが一時的に応答しなくなったり、遅くなったりするという既知の問題があります。アトラシアンではこのバグを積極的に調査しています。 CONFSERVER-82499 - 課題情報を取得中... ステータスでこの問題を追跡できます。


ステップ 1. バケットを作成する

Amazon S3 を使用して添付ファイルの保存を始める前に、Amazon S3 バケットが必要です。その方法に関する Amazon の公式ガイドが公開されています。

S3 バケットを保護するためのリマインダー

バケットが正しく保護され、公開されていないことをご確認ください。Amazon S3 バケットの設定とセキュリティ確保はユーザーの責任であり、アトラシアンは S3 の設定に関連する問題を直接サポートすることはできません。

バケットの権限

Confluence に、次に対する読み取り権限と書き込み権限を付与します。

  • s3:ListBucket

  • s3:PutObject

  • s3:GetObject

  • s3:DeleteObject

バケットの認証方法 (ステップ 2 を参照) によっては、こうした権限を、バケット ポリシーを使用してバケット レベルで適用することも、EC2 の IAM ロールを介して適用することもできます。

下記は、(最小権限モデルに基づいて) 適切な権限を提供する Identity and Access Management (IAM) ポリシーの例です。

{
    "Version": "2012-10-17",
    "Id": "PolicyForS3Access",
    "Statement": [
        {
            "Sid": "StatementForS3Access",
            "Effect": "Allow",
            "Principal": {
                "AWS": "arn:aws:iam::123456789012:user/ConfluenceS3"
            },
            "Action": [
                "s3:ListBucket",
                "s3:PutObject",
                "s3:GetObject",
                "s3:DeleteObject"
            ],
            "Resource": [
                "arn:aws:s3:::confluence-attachment-data/*",
                "arn:aws:s3:::confluence-attachment-data"
            ]
        }
    ]
}


サポートされているバケット構成

Confluence では、AWS コンソールまたは CLI を介して S3 バケットのプロパティと機能を有効にすることが可能です。

下記にリストされていないプロパティを設定すると、Confluence がバケットで正しく動作しなくなる可能性があります。

 

プロパティ

説明

バケットのバージョニング

バージョニングを有効にすることで、オブジェクトの複数バージョンを 1 つのバケットに保持できます。初期設定では、新しい S3 バケットのバージョニングは無効になっています。

Amazon S3 のバケット バージョニングは、Confluence の添付ファイル バージョン管理方法を補完するものと考えるべきです。この 2 つのアプローチは相互に排他的であり、一方が他方に影響することはありません。

Confluence から完全削除した場合でも、バケットに保存されている全オブジェクトの全バージョンを保存、取得、復元する必要がある場合は、S3 バケットのバージョニングを使用する必要があります。

(warning) つまり、添付ファイルを S3 バケットから手動で削除せずに Confluence から完全削除しても、そのファイルは S3 に引き続き存在しています。Confluence 管理者が気付いていない場合、特定の GDPR コンプライアンスに違反する可能性があります。

バージョニングの有効化については、「バケットでのバージョニングを有効化する」をご参照ください

バケットのポリシー

バケットに保存されているオブジェクトへのアクセスを制御します。Amazon S3 のポリシーと権限」をご参照ください。

S3 Intelligent-Tiering「自動」とマークされたアクセス階層のみがサポートされています。「S3 Intelligent-Tiering アクセス階層」をご参照ください。

ステップ 2. Amazon S3 バケットを認証する

Confluence は Java 2.x 用 AWS SDK を使用して Amazon S3 と通信します。SDK が認証されるまで、次の事前定義された順序で Confluence 環境の認証情報を検索します。

Amazon EC2 インスタンス プロファイル認証情報は Amazonが推奨しています。このオプションを使用する場合は、インスタンス メタ データ サービス v2 を使用することもお勧めします。

  1. 環境変数
  2. Java システムのプロパティ

    Java システム プロパティを使用する場合、これらの値はスタートアップ時に製品によって記録される可能性があることに注意してください。

  3. AWS セキュリティ トークン サービスのウェブ ID トークン

  4. 共有認証情報config ファイル (~/.aws/credentials)

  5. Amazon ECS コンテナーの認証情報

  6. Amazon EC2 インスタンス プロファイル認証情報 (Amazon が推奨)

お使いの環境に対する認証情報の設定については、Amazon に次の開発者ガイドが用意されています。

バケット接続をテストする方法は次のとおりです。 

AWS S3 CLI と下記の手順を使用して、認証メカニズムが有効であり、正しい権限が指定されていることを確認します。

  1. テスト ファイルを作成します。 

    touch /tmp/test.txt
  2. ファイルをターゲット バケットに書き込むことで、S3:PutObject 権限を確認します。

    aws s3api put-object --bucket <bucket_name> --key conn-test/test.txt --body /tmp/test.txt
  3. S3:ListBucket 権限を確認します。 

    aws s3api list-objects --bucket <bucket_name> --query 'Contents[].{Key: Key, Size: Size}'
  4. S3:GetObject 権限を確認します。

    aws s3api get-object --bucket <bucket_name> --key conn-test/test.txt /tmp/test.txt
  5. S3: DeleteObject 権限を確認します。

    aws s3api delete-object --bucket <bucket_name> --key conn-test/test.txt
  6. 元のテスト ファイルを削除します。

    rm /tmp/test.txt

ステップ 3. S3 バケットを Confluence に接続する

Amazon S3 バケットを Confluence インスタンスに接続する方法は次のとおりです。

  1. バケット名とリージョンのシステム プロパティを設定します。

    • confluence.filestore.attachments.s3.bucket.name

    • confluence.filestore.attachments.s3.bucket.region

    • この方法については「システム プロパティの設定」をご参照ください。

    • 注: ローカル ホームまたは共有ホーム (クラスタリングが有効な場合) にある confluence.cfg.xml は、これらのプロパティで自動的に更新されます。
  2. 次に、Confluence インスタンスを起動/再起動します。

  3. Confluence が起動すると、バケット接続、バケットの名前とリージョンの妥当性、バケットの権限がチェックされます。 必要事項を検証できない場合、起動プロセスは停止し、失敗した理由を伝えるエラー メッセージが表示されます。こうしたエラーに関するヘルプは、下記のトラブルシューティング セクションをご確認ください。

Confluence が Amazon S3 オブジェクト ストレージを使用していることを確認する方法は次のとおりです。

  1. [管理] > [一般設定] > [システム情報] に移動します。

  2. [添付ファイル保存場所のタイプ] の横に「S3」と表示されます。

  3. さらに、[Java ランタイム引数] の横には、バケット名とリージョンの両方のシステム プロパティとそれぞれの値が表示されます。


注: Amazon S3 ストレージを使用している場合、Confluence は attachments.dir プロパティ (ストレージ ディレクトリの再配置に使用) を無視します。代わりに、添付ファイル データはルートのプレフィックス /confluence/attachments/v4 を使用して S3 に保存されます。つまり、Confluence が Amazon S3 を使用するように設定されると、attachments.dir プロパティを変更しても、添付ファイルの保存場所には影響しません。

トラブルシューティング

起動時に、Confluence で一連のヘルス チェックを実行して問題を特定します。その問題と解決に必要なアクションを下記に示します。

主な問題が関連するのは、不適切な S3 構成、権限、または認証です。

また、atlassian-confluence-health-checks.log でヘルス チェック ログをレビューして、問題の詳細を確認することもできます。「Confluence ログを使用する」のページでは、このログや他のログにアクセスする方法を説明しています。

問題

ソリューション

S3 設定がありません

ヘルス チェック警告の例

テキスト バージョン:

(warning)システム起動: S3 オブジェクト ストレージが正しく構成されていません。

S3 バケットの名前とリージョンが指定されていることをご確認のうえ、もう一度 Confluence の起動をお試しください。

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:null
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況で、プロパティ confluence.filestore.attachments.s3.bucket.region は設定されていますが、confluence.filestore.attachments.s3.bucket.name は設定されていません。

Amazon S3 が機能するには、バケットの名前とリージョンの両方に有効な値を指定する必要があります。

バケットのリージョンが有効ではありません

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

書き込み操作の実行エラー: サービスを操作しようとしたら、UnknownHostException を受信しました。解決に失敗している正確なエンドポイントの原因をご確認ください。以前は機能していたエンドポイントで発生している場合は、ネットワーク接続に問題があるか、DNS キャッシュにエンドポイントが長期間保存されている可能性があります。

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況において、プロパティ confluence.filestore.attachments.s3.bucket.region は無効な値で設定されています。

バケットのリージョンに有効な値を入力して、Confluence を再起動する必要があります。

バケット名が無効です

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

書き込み操作の実行エラー: 指定されたバケットが存在しません (サービス: S3、ステータス コード: 404、リクエスト ID: X、拡張リクエスト ID:X)。

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況において、プロパティ confluence.filestore.attachments.s3.bucket.name は無効な値で設定されています。

バケットの名前に有効な値を入力して、Confluence を再起動する必要があります。

不正な AWS 認証情報で Confluence を起動しています

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

書き込み操作の実行エラー: 提供された AWS キー ID がレコードに存在しません (サービス: S3、ステータス コード: 404、リクエスト ID: X、延長リクエスト ID: X)。

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況では、選択された認証メカニズムの一部として、無効な AWS アクセス キーが提供されました。その結果、AWS での認証に失敗しました。

アクセス キーに有効な値を入力して、Confluence を再起動する必要があります。

バケットに読み取り権限が設定されていません (S3:GetObject)

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

読み込み操作の実行エラー: アクセス拒否 (サービス: S3、ステータス コード: 403、リクエスト ID: X、拡張リクエスト ID:X)

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況では、GetObject 権限が存在していません。

正しいバケット権限が設定されていることを確認し、必要に応じて適用します。その後、Confluence を再起動します。

バケットに書き込み権限が設定されていません (S3:PutObject)

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

書き込み操作の実行エラー: アクセス拒否 (サービス: S3、ステータス コード: 403、リクエスト ID: X、拡張リクエスト ID:X)

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況では、PutObject 権限が存在していません。

正しいバケット権限が設定されていることを確認し、必要に応じて適用します。その後、Confluence を再起動します。

バケットに削除権限が設定されていません (S3:DeleteObject)

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

削除操作の実行エラー: アクセス拒否 (サービス: S3、ステータス コード: 403、リクエスト ID: X、拡張リクエスト ID:X)

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況では、DeleteObject 権限が存在していません。

正しいバケット権限が設定されていることを確認し、必要に応じて適用します。その後、Confluence を再起動します。

リスト権限のないバケットで Confluence を設定しています (S3:ListBucket)

ヘルス チェック警告の例

テキスト バージョン:

(warning) システム起動: 添付ファイル保存場所の AWS S3 接続確認中にエラーが発生しました。

リスト操作の実行エラー: アクセス拒否 (サービス: S3、ステータス コード: 403、リクエスト ID: X、拡張リクエスト ID:X)

S3 構成:

  • confluence.filestore.attachments.s3.bucket.name:confluence-attachment-data
  • confluence.filestore.attachments.s3.bucket.region:eu-west-1

この状況では、ListBucket 権限が存在していません。

正しいバケット権限が設定されていることを確認し、必要に応じて適用します。その後、Confluence を再起動します。

最終更新日: 2023 年 10 月 15 日

この内容はお役に立ちましたか?

はい
いいえ
この記事についてのフィードバックを送信する
Powered by Confluence and Scroll Viewport.