Amazon SQS でのアクセス管理の概要 - Amazon Simple Queue Service

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

Amazon SQS でのアクセス管理の概要

すべてAWSのリソースは AWS アカウントによって所有され、リソースの作成またはアクセスは、アクセス権限のポリシーによって管理されます。アカウント管理者は、IAMアクセス権限ポリシーをアイデンティティ (ユーザー、グループ、ロール) にアタッチできます。一部のサービス ( Amazon SQS など) では、アクセス権限ポリシーをリソースにアタッチすることもできます。

注記

アカウント管理者 (または管理者ユーザー) は、管理者権限を持つユーザーです。詳細については、「IAM ユーザーガイド」の「IAM のベストプラクティス」を参照してください。

アクセス権限を付与する場合、アクセス権限を取得するユーザー、取得するアクセス権限の対象となるリソース、およびリソースに対して許可される特定のアクションを指定します。

Amazon Simpleキューサービス リソースと操作

Amazon SQS では、唯一のリソースはキューです。ポリシーで Amazon リソースネーム (ARN)を使用して、ポリシーを適用するリソースを識別します。次のリソースには、関連付けられた一意のARN があります。

リソースタイプ ARN 形式
キュー arn:aws:sqs:region:account_id:queue_name

キューの ARN 形式の例を以下に示します。

  • AWSアカウント 123456789012:に属するmy_queue米国東部(オハイオ)リージョンのというキューの ARN。

    arn:aws:sqs:us-east-2:123456789012:my_queue
  • Amazon SQSがサポートする異なるリージョンごとのmy_queueというキューのARN。

    arn:aws:sqs:*:123456789012:my_queue
  • キュー名に対して*または?をワイルドカードとして使用する ARN。次の例で、ARN はプレフィックス my_prefix_ が付いたすべてのキューに一致します。

    arn:aws:sqs:*:123456789012:my_prefix_*

GetQueueAttributes アクションを呼び出して既存のキューの ARN 値を取得できます。QueueArn 属性の値は、キューの ARN です。ARNの詳細については、IAM ユーザーガイドの「IAM ARN」を参照してください。

Amazon SQSには、キューリソースを操作するための一連の アクションが用意されています。詳細については、「Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについて」を参照してください。

リソース所有権について

AWS アカウント は、誰がリソースを作成したかにかかわらず、アカウントで作成されたリソースを所有します。具体的には、リソース所有者は、リソースの作成リクエストを認証するプリンシパルエンティティ (ルートアカウント、ユーザー、または IAM ロール) の AWS アカウント です。次の例は、この仕組みを示しています。

  • AWS アカウント アカウントのルートアカウントの認証情報を使用してAmazon SQSキューを作成する場合、この アカウントがリソースのAWS アカウント所有者です ( Amazon SQSでは、リソースはAmazon SQSキューです)。

  • AWS アカウント にユーザーを作成し、そのユーザーにキューを作成するためのアクセス許可を付与する場合、そのユーザーはキューを作成できます。ただし、(ユーザーが属する) AWS アカウントアカウントはキューリソースを所有しています。

  • Amazon SQSキューを作成するためのAWS アカウントアクセス権限を持つIAM ロールを作成する場合は、ロールを引き受けることのできるいずれのユーザーもキューを作成できます。(ロールが属する) AWS アカウントはキューリソースを所有しています。

リソースへのアクセスの管理

アクセス許可ポリシー では、誰が何にアクセスできるかを記述します。以下のセクションで、アクセス権限のポリシーを作成するために使用可能なオプションについて説明します。

注記

このセクションでは、Amazon SQSのコンテキストでの IAM の使用について説明します。これは、IAMサービスに関する詳細情報を取得できません。IAM に関する詳細なドキュメントについては、「IAM ユーザーガイド」の「What is IAM?」(IAM とは?) を参照してください。IAM ポリシーの構文と説明については、「IAM ユーザーガイド」の「AWS IAM ポリシーリファレンス」を参照してください。

IAM ID にアタッチされたポリシーは ID ベースのポリシー (IAM ポリシー) と呼ばれ、リソースにアタッチされたポリシーはリソースベースのポリシーと呼ばれます。

アイデンティティベースのポリシー (IAMポリシーと Amazon SQS ポリシー)

ユーザーにAmazon SQSキューのアクセス権限を付与する方法は、 ポリシーシステムを使用する方法とIAMポリシーシステムを使用する方法の 2 つです。いずれかのシステムまたは両方を使用して、ユーザーまたはロールにポリシーをアタッチできます。ほとんどの場合、どちらのシステムを使用しても同じ結果が得られます。例えば、次の操作を実行できます:

  • アカウントのユーザーまたはグループに許可ポリシーをアタッチする–Amazon SQS キューを作成する許可を付与するために、ユーザーまたはユーザーが所属するグループに許可ポリシーをアタッチできます。

  • 別のAWS アカウントアカウントのユーザーにアクセス権限ポリシーをアタッチする- ユーザーにAmazon SQSキューを作成するアクセス権限を付与するには、別のAWS アカウントにAmazon SQSアクセス権限をアタッチします。

    クロスアカウントアクセス権限は、次のアクションには適用されません。

  • アクセス権限ポリシーをロールにアタッチする (クロスアカウントのアクセス権限を付与する) –クロスアカウントのアクセス権限を付与するには、アイデンティティベースのアクセス権限ポリシーを IAM ロールにアタッチできます。たとえば、AWS アカウント Aの管理者は、次のようにAWS アカウント アカウント B (またはAWSサービス) にクロスアカウントアクセス権限を付与するロールを作成できます。

    • アカウント A の管理者は、IAM ロールを作成し、そのロールに対して、アカウント A のリソースにアクセス許可を付与するアクセス許可ポリシーをアタッチします。

    • アカウント Aの管理者は、アカウントBをそのロールを引き受けるプリンシパルとして識別するロールに、信頼ポリシーを添付します。

    • アカウントBの管理者は、ロールを引き受けるアクセス権限をアカウントBの任意のユーザーに委任できます。これにより、アカウントBのユーザーはアカウントAでキューを作成したり、キューにアクセスしたりできます。

      注記

      ロールを引き受けるアクセス権限をAWSサービスに付与する場合は、信頼ポリシーのプリンシパルもAWSサービスのプリンシパルにできます。

IAM を使用した許可の委任の詳細については、「IAM ユーザーガイド」の「アクセス管理」を参照してください。

Amazon SQS はIAMポリシーを使用して作業する一方で、独自のポリシーインフラストラクチャがあります。キューでAmazon SQSポリシーを使用して、キューにアクセスできるAWSアカウントを指定できます。アクセスタイプと条件を指定できます (たとえば、リクエストが 2010年12月31日より前の場合はSendMessageReceiveMessageを使用するアクセス権限を付与する条件)。アクセス許可を付与できる特定のアクションは、Amazon SQS アクションリスト全体のサブセットです。Amazon SQS ポリシーを記述して、*「すべての アクションを許可」を意味するを指定した場合、ユーザーがこのサブセット内のすべてのアクション実行できることを意味します。

次の図は、これらのベーシックなAmazon SQS ポリシーのうち1つの概念を表しており、アクションのサブセットを取り上げています。ポリシーは queue_xyz 用であり、AWS アカウント1および AWS アカウント 2に指定されたキューで許可されたアクションのいずれかを使用するアクセス権限を与えます。

注記

ポリシー内のリソースが123456789012/queue_xyzとして指定されています (123456789012は、キューを所有するアカウントの AWS アカウントID です)。

IAMと、ユーザーおよび Amazon リソースネーム(ARN)の概念の導入により、SQSポリシーに関するいくつかの点が変わりました。次の図と表は、その変更を示しています。

異なるアカウントのユーザーに権限を付与する方法については、IAMユーザーガイド「チュートリアル:アクセス権の委任AWSIAM ロールを使用するアカウントを参照してください。

*に含まれるアクションのサブセットが拡大されました。可能なアクションの一覧については、Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについてを参照してください。

Amazon リソースネーム (ARN)を使用してリソースを指定できます。これは、IAMポリシーでリソースを指定するためのスタンダードな方法です。Amazon SQSキューのARN形式については、「Amazon Simpleキューサービス リソースと操作」を参照してください。

たとえば上の図の Amazon SQS AWS ポリシーによると、AWS アカウントにしたがって、 1または アカウント2のセキュリティ認証情報を持つどのユーザーでもqueue_xyzにアクセスできます。さらに、自身のAWS アカウント (ID 123456789012)内のユーザー Bobおよび Susanもキューにアクセスできます。

IAMの導入前は、 Amazon SQSによりキューの作成者に、キューに対する完全なコントロールが付与されていました (そのキューで使用できるすべての Amazon SQ アクションへのアクセス)。これは、作成者が AWS セキュリティ認証情報を使用している場合以外は当てはまらなくなりました。キューを作成するアクセス権限を持つユーザーは、作成されたキューで何らかの操作を実行するには、他のAmazon SQSアクションを使用するアクセス権限も持っている必要があります。

以下に、ユーザーにすべてのAmazon SQSアクションを許可するが、対象を名前にリテラル文字列というプレフィックスがついているキューに限るポリシーの例を示しますbob_queue_

{ "Version": "2012-10-17", "Statement": [{ "Effect": "Allow", "Action": "sqs:*", "Resource": "arn:aws:sqs:*:123456789012:bob_queue_*" }] }

詳細については、IAMユーザーガイドAmazon SQS でのポリシーの使用ID (ユーザー、グループ、ロール)」とのIAM ポリシーの概要」を参照してください。

ポリシー要素の指定:アクション、効果、リソース、プリンシパル

Amazon Simple キューサービス リソースの種類ごとに、このサービスは、一連のアクションを定義します。これらの アクションを実行するためのアクセス権限を付与するために、Amazon SQSではポリシーに一連のアクションを定義できます。

注記

1つの アクションの実行で、複数のアクションのアクセス権限が必要になる場合があります。特定のアクションのアクセス権限を付与した場合は、アクションを許可または拒否するリソースを識別します。

最も基本的なポリシーの要素を次に示します。

  • リソース–ポリシーで Amazon リソースネーム (ARN)を使用して、ポリシーを適用するリソースを識別します。

  • アクション–アクションのキーワードを使用して、許可または拒否するリソースアクションを識別します。たとえば、sqs:CreateQueue権限は、Amazon Simple キューサービスCreateQueueアクション の実行をユーザーに許可します。

  • 効果–ユーザーが特定のアクションを要求する際の効果を指定します。許可または拒否のいずれかになります。リソースへのアクセスを明示的に許可していない場合、アクセスは暗黙的に拒否されます。また、明示的にリソースへのアクセスを拒否すると、別のポリシーによってアクセスが許可されている場合でも、ユーザーはそのリソースにアクセスできなくなります。

  • プリンシパル-アイデンティティベースのポリシー(IAMポリシー)で、ポリシーが添付されているユーザーが黙示的なプリンシパルとなります。リソースベースのポリシーでは、権限 (リソースベースのポリシーにのみ適用)を受け取りたいユーザー、アカウント、サービス、またはその他のエンティティを指定します。

Amazon SQS ポリシーの構文と記述の詳細については、IAM ユーザーガイドAWSIAM ポリシーリファレンスを参照してください。

すべてのAmazon Simpleキューサービスアクションおよびそれに適用されるリソースを示す表については、「Amazon SQS (Amazon SQS)、 API のアクセス権限: アクションとリソースのリファレンスについて」を参照してください。