

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# Amazon SQS コンソールを使用した Amazon SQS キューの設定
<a name="sqs-configuring"></a>

Amazon SQS のキューと機能を設定および管理するには、Amazon SQS コンソールを使用します。以下の操作も可能です。
+ セキュリティを強化するためにサーバー側の暗号化を有効にする。
+ デッドレターキューを関連付けて、未処理のメッセージを処理する。
+ イベント駆動型処理のために Lambda 関数を呼び出すトリガーを設定する。

# Amazon SQS の属性ベースのアクセス制御
<a name="sqs-abac"></a>

## ABAC とは
<a name="sqs-abac-whatis"></a>

属性ベースのアクセス制御 (ABAC) は、ユーザーおよび AWS リソースにアタッチされたタグに基づいてアクセス許可を定義する認可プロセスです。ABAC は、属性と値に基づいてきめ細かく柔軟なアクセス制御を実現し、再構成されたロールベースのポリシーに関連するセキュリティリスクを軽減し、監査とアクセスポリシー管理を一元化します。ABAC の詳細については、「IAM ユーザーガイド**」の「[AWSの ABAC とは](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_attribute-based-access-control.html)」を参照してください。

Amazon SQS は、Amazon SQS キューに関連付けられているタグとエイリアスに基づいて Amazon SQS キューへのアクセスを制御できるようにすることで、ABAC をサポートしています。Amazon SQS の ABAC を有効にするタグおよびエイリアスの条件キーは、ポリシーを編集したりグラントを管理することなく、IAM プリンシパルが Amazon SQS キューを使用することを許可します。ABAC の条件キーの詳細については、「*サービス認可リファレンス*」の「[Amazon SQS の条件キー](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonsqs.html#amazonsqs-policy-keys)」を参照してください。

ABAC では、タグを使用して Amazon SQS キューの IAM アクセス許可とポリシーを設定できます。これにより、アクセス許可管理をスケールできます。各ビジネスロールに追加するタグを使用して、IAM で単一のアクセス許可ポリシーを作成できます。新しいリソースを追加するたびにポリシーを更新する必要はありません。IAM プリンシパルにタグをアタッチして ABAC ポリシーを作成することもできます。呼び出しを行う IAM ユーザーロールのタグが Amazon SQS キュータグと一致した場合に Amazon SQS オペレーションを許可するように ABAC ポリシーを設計できます。でのタグ付けの詳細については AWS、[AWS 「タグ付け戦略](https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)」と「」を参照してください[Amazon SQSコスト配分タグ](sqs-queue-tags.md)。

**注記**  
Amazon SQS の ABAC は現在、Amazon SQS が利用可能なすべての AWS 商用リージョンで使用できますが、以下の例外があります。  
アジアパシフィック (ハイデラバード)
アジアパシフィック (メルボルン)
欧州 (スペイン) 
欧州 (チューリッヒ)

## Amazon SQS で ABAC を使用すべき理由は何ですか。
<a name="sqs-abac-benefits"></a>

Amazon SQS で ABAC を使用すると、以下のようなメリットがあります。
+ Amazon SQS 用 ABAC では、必要なアクセス許可ポリシーが少なくて済みます。職務機能ごとに異なるポリシーを作成する必要はありません。複数のキューに適用されるリソースタグとリクエストタグを使用できるため、運用上のオーバーヘッドが軽減できます。
+ ABAC を使用すると、チームを迅速にスケールできます。リソースの作成時に適切なタグが付けられると、新しいリソースのアクセス許可はタグに基づいて自動的に付与されます。
+ IAM プリンシパルのアクセス許可を使用して、リソースへのアクセスを制限します。IAM プリンシパルのタグを作成し、そのタグを使用して IAM プリンシパルのタグと一致する特定のアクションへのアクセスを制限できます。これにより、リクエストのアクセス許可を付与するプロセスを自動化できます。
+ リソースにアクセスしているユーザーを追跡できます。セッションの ID は、 AWS CloudTrailのユーザー属性を調べることで判断できます。

**Topics**
+ [ABAC とは](#sqs-abac-whatis)
+ [Amazon SQS で ABAC を使用すべき理由は何ですか。](#sqs-abac-benefits)
+ [アクセス制御のタグ付け](sqs-abac-tagging-resource-control.md)
+ [IAM ユーザーと Amazon SQS キューの作成](sqs-abac-creating-queues.md)
+ [属性ベースのアクセス制御のテスト](sqs-abac-testing-access-control.md)

# Amazon SQS でのアクセス制御のタグ付け
<a name="sqs-abac-tagging-resource-control"></a>

以下は、Amazon SQS におけるアクセス制御のためにタグを使用する例です。IAM ポリシーは、キー environment および値 production のタグを持つリソースタグを含むすべてのキューに対して、IAM ユーザーにすべての Amazon SQS アクションを制限します。詳細については、[「タグを使用した属性ベースのアクセスコントロール」と AWS 「Organizations](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_tagging_abac.html)」を参照してください。

------
#### [ JSON ]

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "AllowAccessForProd",
      "Effect": "Allow",
      "Action": "sqs:*",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:ResourceTag/environment": "prod"
        }
      }
    }
  ]
}
```

------

# IAM ユーザーと Amazon SQS キューの作成
<a name="sqs-abac-creating-queues"></a>

次の例では、 AWS マネジメントコンソール と を使用して Amazon SQS へのアクセスを制御する ABAC ポリシーを作成する方法について説明します CloudFormation。

## の使用 AWS マネジメントコンソール
<a name="sqs-abac-creating-queues-console"></a>

**IAM ユーザーの作成**

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) で IAM コンソールを開きます。

1. 左側のナビゲーションペインで **[ユーザー]** を選択します。

1. **[ユーザーを追加]** を選択し、**[ユーザー名]** テキストボックスに名前を入力します。

1. **[アクセスキー - プログラムによるアクセス]** ボックスを選択し、**[次へ: 許可]** を選びます。

1. **[Next:Tags]** (次のステップ: タグ) を選択します。

1. タグのキーを `environment`、タグの値を `beta` として追加します。

1. **[次の手順: 確認]**、**[作成]** の順に選択します。

1. アクセスキー ID とシークレットアクセスキーを安全な場所にコピーして保存します。

**IAM ユーザーのアクセス許可を追加する**

1. 作成した IAM ユーザーを選択します。

1. [**Add inline policy**] (インラインポリシーの追加) を選択します。

1. [JSON] タブに、以下のポリシーを貼り付けます。

1. **[ポリシーの確認]** を選択します。

1. [**Create policy**] (ポリシーの作成) を選択します。

## の使用 AWS CloudFormation
<a name="sqs-abac-creating-queues-cf"></a>

次のサンプル CloudFormation テンプレートを使用して、インラインポリシーと Amazon SQS キューがアタッチされた IAM ユーザーを作成します。

```
AWSTemplateFormatVersion: "2010-09-09"
Description: "CloudFormation template to create IAM user with custom inline policy"
Resources:
    IAMPolicy:
        Type: "AWS::IAM::Policy"
        Properties:
            PolicyDocument: |
                {
                    "Version": "2012-10-17",		 	 	 
                    "Statement": [
                        {
                            "Sid": "AllowAccessForSameResTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:SendMessage",
                                "sqs:ReceiveMessage",
                                "sqs:DeleteMessage"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "AllowAccessForSameReqTag",
                            "Effect": "Allow",
                            "Action": [
                                "sqs:CreateQueue",
                                "sqs:DeleteQueue",
                                "sqs:SetQueueAttributes",
                                "sqs:tagqueue"
                            ],
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:RequestTag/environment": "${aws:PrincipalTag/environment}"
                                }
                            }
                        },
                        {
                            "Sid": "DenyAccessForProd",
                            "Effect": "Deny",
                            "Action": "sqs:*",
                            "Resource": "*",
                            "Condition": {
                                "StringEquals": {
                                    "aws:ResourceTag/stage": "prod"
                                }
                            }
                        }
                    ]
                }
                
            Users: 
              - "testUser"
            PolicyName: tagQueuePolicy

    IAMUser:
        Type: "AWS::IAM::User"
        Properties:
            Path: "/"
            UserName: "testUser"
            Tags: 
              - 
                Key: "environment"
                Value: "beta"
```

# Amazon SQS での属性ベースのアクセス制御のテスト
<a name="sqs-abac-testing-access-control"></a>

以下の例は、Amazon SQS で属性ベースのアクセス制御をテストする方法について示しています。

## タグキーを environment に設定し、タグ値を prod に設定してキューを作成します。
<a name="sqs-abac-testing-access-control-create-queue"></a>

この AWS CLI コマンドを実行して、タグキーを環境に設定し、タグ値を prod に設定してキューの作成をテストします。 AWS CLI がない場合は、マシン用に[ダウンロードして設定できます](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)。

```
aws sqs create-queue --queue-name prodQueue —region us-east-1 —tags "environment=prod"
```

Amazon SQS エンドポイントから `AccessDenied` エラーを受け取ります。

```
An error occurred (AccessDenied) when calling the CreateQueue operation: Access to the resource <queueUrl> is denied.
```

これは、IAM ユーザーのタグ値が [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_CreateQueue.html) API コールで渡されたタグと一致しないためです。キーを `environment` に、値を `beta` に設定したタグを IAM ユーザーに適用したことを思い出してください。

## タグキーを environment に設定し、タグ値を beta に設定してキューを作成する
<a name="sqs-abac-testing-access-control-create-env"></a>

この CLI コマンドを実行して、タグキーを `environment` に設定し、タグ値を `beta` に設定したキューの作成をテストします。

```
aws sqs create-queue --queue-name betaQueue —region us-east-1 —tags "environment=beta"
```

キューが正常に作成されたことを確認する次のようなメッセージが表示されます。

```
{
"QueueUrl": "<queueUrl>“
}
```

## キューへメッセージを送信する
<a name="sqs-abac-testing-access-control-sending-message"></a>

この CLI コマンドを実行して、キューへのメッセージ送信をテストします。

```
aws sqs send-message --queue-url <queueUrl> --message-body testMessage
```

レスポンスには、Amazon SQS キューへのメッセージ配信が成功したことが示されます。IAM ユーザーアクセス許可により、`beta` タグを持つキューにメッセージを送信できます。レスポンスにはメッセージを含む `MD5OfMessageBody` と `MessageId` が含まれます。

```
{
"MD5OfMessageBody": "<MD5OfMessageBody>",
"MessageId": "<MessageId>"
}
```

# Amazon SQS コンソールを使用したキューのパラメータの設定
<a name="sqs-configure-queue-parameters"></a>

キューを[作成](creating-sqs-standard-queues.md#step-create-standard-queue)または[編集する](sqs-configure-edit-queue.md)場合、以下のパラメータを設定できます。
+ **可視性タイムアウト** — キューから受信したメッセージが (あるコンシューマによって) 他のメッセージコンシューマーに表示されない時間の長さ。詳細については、「[可視性](sqs-visibility-timeout.md)」を参照してください。
**注記**  
コンソールを使用して可視性タイムアウトを設定すると、キュー内のすべてのメッセージのタイムアウト値が設定されます。単一または複数のメッセージのタイムアウトを設定するには、いずれかの AWS SDKsを使用する必要があります。
+ **メッセージの保持期間**— キューに残っているメッセージを Amazon SQS が保持する時間は。デフォルトでは、キューは4日間メッセージを保持します。最大14日間までメッセージを保持するようにキューを設定できます。詳細については、「[メッセージの保持期間](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SetQueueAttributes.html)」を参照してください。
+ **配信の遅延**—キューに追加されたメッセージを配信する前に Amazon SQSが遅延する時間。詳細については、「[配信の遅延](sqs-delay-queues.md)」を参照してください。
+ **メッセージの最大サイズ**—このキューの最大メッセージサイズ。詳細については、「[メッセージの最大サイズ](sqs-s3-messages.md)」を参照してください。
+ **メッセージの受信待ち時間**—キューが受信リクエストを受け取った後、Amazon SQS がメッセージが使用可能になるまでの待機する最大時間。詳細については、「[Amazon SQSショートポーリングとロングポーリング](sqs-short-and-long-polling.md)」を参照してください。
+ **コンテンツベースの重複除外を有効**—Amazon SQS は、メッセージの本文に基づいて重複除外IDを自動的に作成できます。詳細については、「[Amazon SQS FIFO キュー](sqs-fifo-queues.md)」を参照してください。
+ **高スループット FIFOを有効にする**—キューのメッセージの高スループットを有効にするために使用します。このオプションを選択すると、関連するオプションが ([重複除外スコープ](enable-high-throughput-fifo.md)そして[FIFOスループットの制限](enable-high-throughput-fifo.md)) を使用して、FIFOキューの高スループットを有効にするために必要な設定に変更されます。詳細については、「[Amazon SQS の FIFO キューの高スループット](high-throughput-fifo.md)」および「[Amazon SQS のメッセージキュー](quotas-messages.md)」を参照してください。
+  **許可ポリシーの再実行**: どのソースキューがこのキューをデッドレターキューとして使用できるを定義します。詳細については、「[Amazon SQS でのデッドレターキューの使用](sqs-dead-letter-queues.md)」を参照してください。



**既存のキュー (コンソール)のキューパラメータを設定するには**

1. Amazon SQS コンソール を開きます[https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)。

1. ナビゲーションペインで **[キュー]** を選択します。キューを選択し、**編集**を選択します。

1. **設定**セクションにスクロールします。

1. **可視性タイムアウト**を使用する場合、期間と単位を入力します。範囲は0秒から12時間です。デフォルト値は30秒です。

1. **メッセージの保持期間**を使用する場合、期間と単位を入力します。有効範囲は1分から14日です。デフォルト値は 4 日です。

1. 標準キューの場合は、**メッセージの受信待ち時間**の値を入力します。範囲は 0から20秒です。デフォルト値は0秒で、[ショートポーリング](sqs-short-and-long-polling.md)で設定します。0 以外の値を指定すると、ロングポーリングが設定されます。

1. **配信の遅延**を使用する場合、期間と単位を入力します。範囲は0秒から15 分です。デフォルト値は0 秒です。

1. **最大メッセージサイズ**を使用する場合、値を入力します。範囲は 1 KiB から 1024 KiB です。デフォルト値は 1024 KiB です。

1. FIFO キューの場合は、**コンテンツベースの重複除外を有効にするために**コンテンツベースの重複除外を有効にします。デフォルト設定は無効です｡ 

1. (オプション) FIFO キューの場合、キュー内のメッセージの送受信でより高スループットを有効にするには、**[高スループット FIFO を有効にする]** を選択します。

   このオプションを選択すると、関連するオプション (**重複除外のスコープ**および **FIFO スループットの制限**) を使用して、FIFO キューの高スループットを有効にするために必要な設定に変更されます。高スループット FIFO の使用に必要な設定のいずれかを変更すると、キューに対して通常のスループットが有効になり、指定されたとおりに重複除外が実行されます。詳細については、「[Amazon SQS の FIFO キューの高スループット](high-throughput-fifo.md)」および「[Amazon SQS のメッセージキュー](quotas-messages.md)」を参照してください。

1. **[許可ポリシーの再実行]** で、**[有効]** を選択します。**[すべて許可]** (デフォルト)、**[キュー別]**、または **[すべて拒否]** から選択します。**キュー別**を選んだとき、Amazon リソースネーム (ARN) で最大 10 個のソースキューのリストを指定します。

1. キューパラメータの設定が完了したら、**保存**を選択します。

# Amazon SQS でのアクセスポリシーの設定
<a name="sqs-configure-add-permissions"></a>

キューの[編集](sqs-configure-edit-queue.md)時、そのアクセスポリシーを設定して誰がキューとやり取りできるかを制御できます。
+ アクセスポリシーは、どのアカウント、ユーザー、ロールがそのキューへアクセスするアクセス許可を持つかを定義します。
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)、[https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_ReceiveMessage.html)、または [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_DeleteMessage.html) などの許可されたアクションを指定します。
+ デフォルトでは、キュー所有者のみがメッセージを送受信するアクセス許可を持ちます。

****既存のキューのアクセスポリシーを設定するには (コンソール)****

1. Amazon SQS コンソール ([https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)) を開きます。

1. ナビゲーションペインで **[キュー]** を選択します。

1. キューを選択し、**[編集]** を選択します。

1. **アクセスポリシー**セクションにスクロール。

1. 入力ボックスの**アクセスポリシーステートメント**を編集します。アクセスポリシーステートメントの詳細については、「[Amazon SQSでの Identity and Access Management](security-iam.md)」を参照してください。

1. アクセスポリシーの設定が完了したら、**[保存]** を選びます。

# SQS マネージド暗号化キーを使用したキューに対するサーバー側の暗号化の設定
<a name="sqs-configure-sqs-sse-queue"></a>

Amazon SQS マネージド SSE (SSE-SQS) では、Amazon SQS が管理する[デフォルト](creating-sqs-standard-queues.md#step-create-standard-queue)のサーバー側の暗号化オプションに加えて、SQS マネージド暗号化キーを使用して、メッセージキューを介して送信される機密データを保護する、カスタムマネージドサーバー側の暗号化を作成できます。SSE-SQSでは、暗号化キーの作成および管理、データを暗号化のためにコードを修正する必要はありません。SSE-SQSを使用すると、データを安全に送信し、追加の費用なしで厳格な暗号化コンプライアンスと規制要件に対応できます。

SSE-SQS は、256 ビットの高度暗号化スタンダード (AES-256)の 暗号化を使用して保存中のデータを保護します。SSEはAmazon SQSサービスがメッセージを受信するとすぐに暗号化します。Amazon SQS は暗号化された形式でメッセージを保存し、承認済みのコンシューマーに送信した場合のみ解読されます。

**注記**  
デフォルトの SSE オプションは、暗号化属性を指定せずにキューを作成した場合にのみ有効です。
Amazon SQS では、キューの暗号化をすべてオフにすることができます。したがって、KMS-SSE をオフにしても SQS-SSE は自動的には有効になりません。KMS-SSE を無効にした後に SQS-SSE を有効にする場合は、リクエストに属性の変更を追加する必要があります。

**キューにSSE-SQS暗号化を設定するには(コンソール)**
**注記**  
HTTP (非 TLS) エンドポイントを使用して作成された新しいキューは、デフォルトで SSE-SQS 暗号化を有効化しません。HTTPS または[署名バージョン 4](https://docs.aws.amazon.com/general/latest/gr/signature-version-4.html) エンドポイントを使用して Amazon SQS キューを作成するのがセキュリティのベストプラクティスです。

1. Amazon SQSコンソール ([https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)) を開きます。

1. ナビゲーションペインで [**Queues(キュー)**] を選択します。

1. キューを選択し、\$1**編集**\$1を選択します。

1. **暗号化**を拡張します。

1. **サーバー側の暗号化**を使用するには、**[有効]** (デフォルト) を選択します。
**注記**  
SSE を有効にすると、暗号化されたキューへの匿名の `SendMessage` リクエストと `ReceiveMessage` リクエストは拒否されます。Amazon SQS のセキュリティベストプラクティスでは、匿名リクエストを使用しないことを推奨しています。Amazon SQS キューに匿名リクエストを送信する場合は、必ず SSE を無効にしてください。

1. **Amazon SQSキー (SSE-SQS)**を選択します。このオプションは追加料金なしで使用されます。

1. **[保存]** を選択します。

# Amazon SQS を使用したキューに対するサーバー側の暗号化の設定
<a name="sqs-configure-sse-existing-queue"></a>

キューのメッセージのデータを保護するために、Amazon SQS では、新しく作成されたキューのサーバー側の暗号化がデフォルトで有効になっています。Amazon SQS は、Amazon Web Services キー管理サービス (Amazon Web Services KMS) と統合してサーバー側の暗号化 (SSE) 用の [KMS キー](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)を管理します。SSE の使用詳細については、「[Amazon SQS での保管中の暗号化](sqs-server-side-encryption.md)」をご参照ください。



キューに割り当てる KMS キーは、キューの使用が承認されたすべてのプリンシパルの許可を含むキーポリシーが必要です。詳細については、[キー管理](sqs-key-management.md)をご参照ください。

KMS キーの所有者ではない場合、または `kms:ListAliases` および `kms:DescribeKey` の許可がないアカウントでログインした場合、Amazon SQS コンソールで KMS キーに関する情報を閲覧できません。これらの許可を付与するように、KMS キーの所有者へ依頼してください。詳しい情報については、[キー管理](sqs-key-management.md)をご参照ください。

キューの[作成](creating-sqs-standard-queues.md#step-create-standard-queue)または[編集](sqs-configure-edit-queue.md)する場合は、SSE-KMS を設定できます。

**既存のキューに SSE-KMSを設定するには(コンソール)**

1. Amazon SQSコンソールを開きます [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)。

1. ナビゲーションペインで [**Queues(キュー)**] を選択します。

1. キューを選択し、\$1**編集**\$1を選択します。

1. **暗号化**を拡張します。

1. **サーバー側の暗号化**を使用するには、**[有効]** (デフォルト) を選択します。
**注記**  
SSE を有効にすると、暗号化されたキューへの匿名の `SendMessage` リクエストと `ReceiveMessage` リクエストは拒否されます。Amazon SQS のセキュリティベストプラクティスでは、匿名リクエストを使用しないことを推奨しています。Amazon SQS キューに匿名リクエストを送信する場合は、必ず SSE を無効にしてください。

1. **AWS キーマネジメントサービスキー (SSE-KMS)**を選びます。

   コンソールは **[Description]** (概要)、**[Account]** (アカウント)、KMS キーの **[KMS key ARN]** (KMS キー ARN) を表示します。

1. キューの KMS キー ID を指定します。詳細については、「[重要な用語](sqs-server-side-encryption.md#sqs-sse-key-terms)」を参照してください。

   1. **[Choose a KMS key alias]** (KMS キーのエイリアスを選択) オプションを選択します。

   1. デフォルトキーは、Amazon SQS 用の Amazon Web Services マネージド KMS キーです。このキーを使用する場合、**[KMS key]** (KMS キー) リストから選択してください。

   1. Amazon Web Services アカウントでカスタム KMS キーを使用する場合、**[KMS key]** (KMS キー) リストから選択してください。カスタム KMS キーの作成手順については、*Amazon Web Services キー管理サービスデベロッパーガイド*の[キー作成](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html)をご参照ください。

   1. リストにないカスタム KMS キーを使用、または別の Amazon Web Services アカウントのカスタム KMS キーを使用する場合、**[Enter the KMS key alias]** (KMS キーのエイリアス入力) を選択し、KMS キー Amazon リソースネーム (ARN) を入力します。

1. (任意) **[Data key reuse period]** (データキー再利用期間) について、1 分から 24 時間の範囲内で値を指定します。デフォルト値は 5 分です。詳細については、「[データキー再利用期間について](sqs-key-management.md#sqs-how-does-the-data-key-reuse-period-work)」を参照してください。

1. SSE-KMS の設定が完了したら、**保存**を選択します。

# Amazon SQS コンソールを使用したキューのコスト配分タグの設定
<a name="sqs-configure-tag-queue"></a>

Amazon SQS キューを整理および識別するために、コスト配分タグを追加することができます。詳細については、「[Amazon SQSコスト配分タグ](sqs-queue-tags.md)」を参照してください。
+ [詳細] ページの [タグ付け] タブには、キューのタグが表示されます。
+ キュー[を作成](creating-sqs-standard-queues.md#step-create-standard-queue)または[編集](sqs-configure-edit-queue.md)するときに、タグを追加または変更できます。

**既存のキューのタグを設定するには(コンソール)**

1. Amazon SQSコンソールを開きます [https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)。

1. ナビゲーションペインで **[キュー]** を選択します。

1. キューを選択し、**編集**を選択します。

1. **タグ**セクションまでスクロールします。

1. キュータグを追加、変更、または削除するには

   1. タグを追加するには、\$1**新しタグを追加**\$1を選択して\$1**キーを**\$1と\$1**値**\$1を入力し、\$1**新しいタグの追加**\$1を選択します。

   1. タグを更新するには、変更します。**キー**と**値**を変更します。

   1. タグを削除するには、キー値ペアの横にある \$1**削除**\$1 を選択します。

1. タグの設定が完了したら、**保存**を選択します。

# Amazon SQS コンソールを使用した Amazon SNS トピックへのキューのサブスクライブ
<a name="sqs-configure-subscribe-queue-sns-topic"></a>

Amazon SQS キューを Amazon SNS トピックに 1 つまたは複数サブスクライブできます。メッセージがトピックに発行されると、Amazon SNS はサブスクライブされた各キューにメッセージを送信します。Amazon SQS はサブスクリプションを管理し、必要なアクセス許可を処理します。Amazon SNS の詳細については、*Amazon Simple Notification Service デベロッパーガイド*の、「[Amazon SNS とは](https://docs.aws.amazon.com/sns/latest/dg/welcome.html)」を参照してください。

Amazon SQS キューを Amazon SNS トピックにサブスクライブすると、Amazon SNS は HTTPS を使用してメッセージを Amazon SQS に転送します。暗号化された Amazon SQSキューでの Amazon SNS の使用については、「[AWS サービスの KMS アクセス許可を設定する](sqs-key-management.md#compatibility-with-aws-services)」を参照してください。

**重要**  
Amazon SQS は、各アクセスポリシーに対して最大 20 個のステートメントをサポートしています。Amazon SNS トピックにサブスクライブすると、このようなステートメントが 1 つ追加されます。この数を超えると、トピックサブスクリプションの配信が失敗します。

**キューを Amazon SNS にトピックにサブスクライブするには（コンソール）**

1. Amazon SQSコンソール ([https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)) を開きます。

1. ナビゲーションペインで **[キュー]** を選択します。

1. キューのリストからキューを選択して、Amazon SNS トピックを購読します。

1. **[Actions]**(アクション) メニューで、**[Subscribe to Amazon SNS topic]**(Amazon SNS トピックを購読する) を選択します。

1. **[このキューメニューで使用できる Amazon SNS トピックを指定する]** で、キューの [Amazon SNS トピック] を選択します。

   SNS トピックが表示されていない場合は、**Amazon SNS トピック ARN と入力し**、次に、トピックの Amazon リソースネーム (ARN) を入力します。

1. **[保存]** を選択します。

1. サブスクリプションを確認するには、トピックにメッセージを発行し、キューにメッセージを表示します。詳細については、「*Amazon Simple Notification Service デベロッパーガイド*」の「[Amazon SNS メッセージの公開](https://docs.aws.amazon.com/sns/latest/dg/sns-publishing.html)」を参照してください。

## クロスアカウントサブスクリプション
<a name="cross-account-subscriptions"></a>

Amazon SQS キューと Amazon SNS トピックが異なる場合は AWS アカウント、追加のアクセス許可が必要です。

**トピック所有者 (アカウント A)**

Amazon SNS トピックのアクセスポリシーを変更して、Amazon SQS キューの が AWS アカウント サブスクライブできるようにします。ポリシーステートメントの例:

```
{
  "Effect": "Allow",
  "Principal": { "AWS": "arn:aws:iam::111122223333:root" },
  "Action": "sns:Subscribe",
  "Resource": "arn:aws:sns:us-east-1:123456789012:MyTopic"
}
```

このポリシーにより、アカウント `111122223333` は `MyTopic` にサブスクライブできます。

**キュー所有者 (アカウント B)**

Amazon SQS キューのアクセスポリシーを変更して Amazon SNS トピックがメッセージを送信できるようにします。ポリシーステートメントの例:

```
{
  "Effect": "Allow",
  "Principal": { "Service": "sns.amazonaws.com" },
  "Action": "sqs:SendMessage",
  "Resource": "arn:aws:sqs:us-east-1:111122223333:MyQueue",
  "Condition": {
    "ArnEquals": { "aws:SourceArn": "arn:aws:sns:us-east-1:123456789012:MyTopic" }
  }
}
```

このポリシーにより、`MyTopic` は `MyQueue` にメッセージを送信できます。

## クロスリージョンサブスクリプション
<a name="cross-region-subscriptions"></a>

別の で Amazon SNS トピックをサブスクライブするには AWS リージョン、以下を確認してください。
+ Amazon SNS トピックのアクセスポリシーは、クロスリージョンサブスクリプションを許可します。
+ Amazon SQS キューのアクセスポリシーは、Amazon SNS トピックがリージョン間でメッセージを送信することを許可します。

詳細については、[「Amazon Simple Notification Service デベロッパーガイド」の「別のリージョンの Amazon SQS キューまたは関数に Amazon SNS メッセージを送信 Amazon SQS AWS Lambda](https://docs.aws.amazon.com/sns/latest/dg/sns-cross-region-delivery.html)する」を参照してください。 **

# AWS Lambda 関数をトリガーするように Amazon SQS キューを設定する
<a name="sqs-configure-lambda-function-trigger"></a>

Lambda 関数を使用して、Amazon SQS キューからのメッセージを処理できます。Lambda はキューをポーリングし、関数を同期的に呼び出して、メッセージのバッチをイベントとして渡します。

**可視性タイムアウトの設定**   
キューの可視性タイムアウトを、[関数タイムアウト](https://docs.aws.amazon.com/lambda/latest/dg/configuration-function-common.html#configuration-common-summary)の 6 倍以上に設定します。これにより、前のバッチを処理中に関数がスロットルされた場合でも、Lambda が再試行するための十分な時間を確保できます。

**デッドレターキュー (DLQ) の使用**  
Lambda 関数が処理に失敗したメッセージをキャプチャするデッドレターキューを指定します。

**複数のキューと関数の処理**  
Lambda 関数は、キューごとに個別のイベントソースを作成することで、複数のキューを処理できます。また、複数の Lambda 関数を同じキューに関連付けることもできます。

**暗号化されたキューのアクセス許可**  
暗号化されたキューを Lambda 関数に関連付けても Lambda がメッセージをポーリングしない場合は、`kms:Decrypt`Lambda 実行ロールへのアクセスを許可します。

**制限事項**  
キューと Lambda 関数は同じ AWS リージョンに存在する必要があります。  
デフォルトキー (Amazon SQS のAWS マネージド KMS キー) を使用する[暗号化されたキュー](sqs-server-side-encryption.md)は、別の で Lambda 関数を呼び出すことはできません AWS アカウント。 Amazon SQS

実装の詳細については、「*AWS Lambda デベロッパーガイド*」の「[Amazon SQS での AWS Lambda の使用](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html)」を参照してください。

## 前提条件
<a name="configure-lambda-function-trigger-prerequisites"></a>

Lambda 関数トリガーを設定するには、以下の要件を満たしている必要があります。
+ ユーザーを使用する場合、Amazon SQSロールに以下のアクセス許可が含まれている必要があります。
  + `lambda:CreateEventSourceMapping`
  + `lambda:ListEventSourceMappings`
  + `lambda:ListFunctions`
+ Lambda 実行ロールに以下のアクセス許可が含まれている必要があります。
  + `sqs:DeleteMessage`
  + `sqs:GetQueueAttributes`
  + `sqs:ReceiveMessage`
+ 暗号化されたキューを Lambda 関数に関連付ける場合は、`kms:Decrypt`Lambda 実行ロールへのアクセス許可をする必要があります。

詳細については、「[Amazon SQS でのアクセス管理の概要](sqs-overview-of-managing-access.md)」を参照してください。

**Lambda関数(コンソール)をトリガーするためにキューを設定**

1. Amazon SQSコンソール を開きます[https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)。

1. ナビゲーションペインで [**Queues(キュー) **] を選択します。

1. **[キュー]**ページで、設定するキューを選択します。

1. キューのページで**Lambdaトリガー**タブを選択します。

1. **Lambdaトリガー**ページで、Lambda トリガーを選択します。

   リストに、必要な Lambdaトリガーが含まれていない場合は、**Lambda関数トリガーを設定する**を選択します。Lambda関数のAmazon リソースネーム (ARN)を入力するか、既存のリソースを選択します。次に、[**Save**]を選択します。

1. **[保存]** を選択します。コンソールは設定を保存し、キューの**の詳細**ページを表示します。

   **詳細**ページで**Lambda トリガー**タブに Lambda 関数とそのステータスが表示されます。Lambda関数がキューに関連付けられるまで約1分かかります。

1. 設定の結果を確認するには、[キューにメッセージを送信](creating-sqs-standard-queues.md#sqs-send-messages)して、トリガーされたLambdaコンソールの Lambda関数が表示できます。

# Amazon EventBridge を使用して AWS サービスから Amazon SQS への通知を自動化する
<a name="sqs-automating-using-eventbridge"></a>

Amazon EventBridge を使用すると、アプリケーションの問題やリソースの変更などのイベントをほぼリアルタイムで自動化 AWS のサービス して対応できます。
+ 特定のイベントをフィルタリングするルールを作成し、ルールがイベントに一致した際に実行される自動アクションを定義できます。
+ EventBridge は、JSON 形式でイベントを受信する Amazon SQS 標準キューや FIFO キューなど、複数のターゲットをサポートしています。

詳細については、「*[Amazon EventBridge ユーザーガイド](https://docs.aws.amazon.com/eventbridge/latest/userguide/)*」の「[Amazon EventBridge ターゲット](https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-targets.html)」を参照してください。

# Amazon SQS を使用した属性を含むメッセージの送信
<a name="sqs-using-send-message-with-attributes"></a>

標準キューと FIFO キューの場合、タイムスタンプ、地理空間データ、署名、識別子など、構造化メタデータをメッセージに含めることができます。詳細については、「[Amazon SQS メッセージ属性](sqs-message-metadata.md#sqs-message-attributes)」を参照してください。

**Amazon SQS コンソールを使用して、属性を含むメッセージをキューに送信するには**

1. Amazon SQSコンソール ([https://console.aws.amazon.com/sqs/](https://console.aws.amazon.com/sqs/)) を開きます。

1. ナビゲーションペインで [**Queues(キュー)**]を選択します。

1. キュー ページで、**キュー** を選択します。

1. **[メッセージの送信と受信]** を選択します。

1. メッセージ属性のパラメータを入力します。

   1. \$1名前テキストボックス\$1に、[固有の名前]を256文字以下で(入力)します。

   1. 属性タイプについては、**文字列**、**数値**、 または**バイナリ**を選択します。

   1. (オプション) カスタムデータタイプを入力します。たとえば、**byte**、**int**、 または**float**のカスタムデータタイプとして**数値**を追加することができます。

   1. \$1値]\$1テキストボックスに、[メッセージ属性の値]を(入力)します。  
![\[[メッセージ属性] セクションを示す Amazon SQS コンソール。\]](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-tutorials-sending-message-with-attributes.png)

1. 属性を追加するには、**[新しい属性を追加]** を選択します。  
![\[[メッセージ属性] セクションの [削除] ボタンを示す Amazon SQS コンソール。\]](http://docs.aws.amazon.com/ja_jp/AWSSimpleQueueService/latest/SQSDeveloperGuide/images/sqs-tutorials-sending-message-with-attributes-custom-attribute.png)

1. メッセージを送信する前に属性の値をいつでも変更することができます。

1. 属性を削除するには、\$1**削除**\$1を(選択)します。最初の属性を削除するには、\$1**メッセージ属性\$1**を(選択)します。

1. メッセージへの属性の追加を終了したら、\$1**メッセージの送信**\$1 を(選択)します。メッセージが送信され、コンソールに成功メッセージが表示されます。送信したメッセージのメッセージ属性に関する情報を表示するには、\$1**詳細を表示**\$1を選択します。\$1**実行**\$1を（選択）して**メッセージの詳細**ダイアログボックス閉じます。