

# カスタム S3 バケットソースの設定
<a name="configuring-custom-s3-bucket-sources"></a>

CloudWatch パイプラインを使用すると、S3 バケットに保存されている任意のログを処理できます。

## 前提条件
<a name="s3-prerequisites"></a>

Amazon S3 をパイプラインのソースとして使用するには、まず S3 バケットを作成します。手順については、「*Amazon S3 ユーザーガイド*」の「[汎用バケットの作成](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。

**注記**  
パイプラインのソースとして使用される S3 バケットが別の AWS アカウントにある場合、バケットのクロスアカウント読み取り権限も有効にする必要があります。これにより、パイプラインはデータを読み取って処理できるようになります。クロスアカウントアクセス許可を有効にするには、「*Amazon S3 User Guide*」の「[Bucket owner granting cross-account bucket permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。  
S3 バケットが複数のアカウントにある場合は、`bucket_owners` マップを使用します。例については、*OpenSearch* ドキュメントの「[Cross-account S3 access](https://docs.opensearch.org/latest/data-prepper/pipelines/configuration/sources/s3/#cross-account-s3-access)」を参照してください。

S3-SQS 処理をセットアップするには、以下のステップも実行する必要があります。
+ [Amazon SQS キューを作成します](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/creating-sqs-standard-queues.html)。
+ [SQS キューを送信先として S3 バケットでイベント通知を有効にします](https://docs.aws.amazon.com/AmazonS3/latest/userguide/enable-event-notifications.html)。

## パイプラインロールを設定する
<a name="configure-pipeline-role"></a>

パイプラインにデータをプッシュする他のソースプラグインとは異なり、S3 ソースプラグインは、パイプラインがソースからデータを取得する読み取りベースのアーキテクチャを使用しています。したがって、パイプラインが S3 から読み取るには、パイプラインの S3 ソース設定で、S3 バケットと Amazon SQS キューの両方にアクセスできるロールを指定する必要があります。キューからデータを読み取るために、パイプラインはこのロールを引き受けます。

ロールのアクセス許可の例については、「[ソース固有の IAM ポリシー](pipeline-iam-reference.md#source-specific-iam-policies)」をご覧ください。このロールと CloudWatch パイプラインのサービスプリンシパルと間には信頼関係が確立されている必要があります。パイプラインロールの信頼ポリシー設定の例については、「[信頼関係](pipeline-iam-reference.md#trust-relationships)」をご覧ください。

## パイプラインの作成
<a name="create-s3-pipeline"></a>

アクセス許可を設定したら、Amazon S3 のユースケースに応じてパイプラインを設定できます。

CloudWatch コンソールの **[取り込み]** にある **[パイプライン]** タブで **[パイプラインの作成]** を選択します。パイプラインウィザードの手順に従い、プロンプトが表示されたら SQS キュー ARN と必要なパイプライン IAM ロールを指定します。必要に応じて、CloudWatch Logs のロググループの送信先にアタッチするデータソース名とタイプを指定します。

送信先ロググループに [CloudWatch Logs リソースポリシー](https://docs.aws.amazon.com/resource-policies.html)がまだ設定されていない場合は必ず設定し、その後に **[確認して作成]** ステップで **[パイプラインの作成]** を選択してください。正常に終了した場合、パイプラインが作成され、5 分以内にデータが流れ始めます。

## ソースとしての Amazon S3 クロスアカウント
<a name="cross-account-s3-access"></a>

CloudWatch パイプラインがソースとして別のアカウントの S3 バケットにアクセスできるように、Amazon S3 のアカウント間でアクセスを許可できます。クロスアカウントアクセスを有効にするには、「*Amazon S3 User Guide*」の「[Bucket owner granting cross-account bucket permissions](https://docs.aws.amazon.com/AmazonS3/latest/userguide/create-bucket-overview.html)」を参照してください。アクセスを付与したら、パイプラインロールに必要なアクセス許可があることを確認します。

次に、`bucket_owners` を使用してパイプラインを作成し、ソースとしての Amazon S3 バケットへのクロスアカウントアクセスを有効にできます。

**カスタムソース設定**

カスタムソースのパイプラインを作成する場合の条件:
+ パーサーはパイプラインの最初のプロセッサである必要があります。
+ カスタムログパイプラインには、サポートされている任意のプロセッサを指定できます。