Amazon SNS での Identity and Access Management - Amazon Simple Notification Service

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

Amazon SNS での Identity and Access Management

Amazon SNS にアクセスするには、 がリクエストの認証 AWS に使用できる認証情報が必要です。これらの認証情報には、Amazon SNS トピックやメッセージなどの AWS リソースにアクセスするためのアクセス許可が必要です。次のセクションでは、AWS Identity and Access Management (IAM) と Amazon SNS を使用して、リソースにアクセスできるユーザーを制御することで、リソースをセキュリティで保護する方法について詳しく説明します。

AWS Identity and Access Management (IAM) は、管理者が AWS リソースへのアクセスを安全に制御 AWS のサービス するのに役立つ です。IAM 管理者は、誰を認証 (サインインを許可) し、誰に Amazon SNS リソースの使用を承認する (アクセス許可を付与する) かを制御します。IAM は、追加料金なしで使用できる AWS のサービス です。

対象者

AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。

アイデンティティを使用した認証

認証は、ID 認証情報 AWS を使用して にサインインする方法です。 AWS アカウント ルートユーザー、IAM ユーザー、または IAM ロールを引き受けることで認証される必要があります。

AWS IAM Identity Center (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーティッド ID としてサインインできます。サインインの詳細については、「 AWS サインイン ユーザーガイド」の「 にサインインする方法 AWS アカウント」を参照してください。

プログラムによるアクセスの場合、 は SDK と CLI AWS を提供してリクエストを暗号化して署名します。詳細については、IAM ユーザーガイドAWS 「API リクエストの署名バージョン 4」を参照してください。

AWS アカウント ルートユーザー

を作成するときは AWS アカウント、すべての AWS のサービス および リソースへの完全なアクセス権を持つ AWS アカウント root ユーザーと呼ばれる 1 つのサインインアイデンティティから始めます。日常的なタスクにはルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、IAM ユーザーガイドの「ルートユーザー認証情報を必要とするタスク」を参照してください。

フェデレーテッドアイデンティティ

ベストプラクティスとして、人間のユーザーが一時的な認証情報 AWS のサービス を使用して にアクセスするには、ID プロバイダーとのフェデレーションを使用する必要があります。

フェデレーティッド ID は、エンタープライズディレクトリ、ウェブ ID プロバイダー、または ID AWS Directory Service ソースの認証情報 AWS のサービス を使用して にアクセスするユーザーです。フェデレーティッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。

一元的なアクセス管理を行うには、 をお勧めします AWS IAM Identity Center。詳細については、「AWS IAM Identity Center ユーザーガイド」の「What is IAM Identity Center?」(IAM Identity Center とは?) を参照してください。

IAM ユーザーとグループ

IAM ユーザーは、1 人のユーザーまたはアプリケーションに対して特定のアクセス許可を持つ ID です。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、IAM ユーザーガイド「ID プロバイダーとのフェデレーションを使用して にアクセスすることを人間のユーザーに要求する AWS」を参照してください。

IAM グループは IAM ユーザーのコレクションを指定し、大量のユーザーのアクセス許可の管理を容易にします。詳細については、IAM ユーザーガイドの「IAM ユーザーのユースケース」を参照してください。

IAM; ロール

IAM ロールは、一時的な認証情報を提供する特定のアクセス許可を持つ ID です。ユーザーから IAM ロール (コンソール) に切り替えるか、 または API オペレーションを呼び出すことで、ロールを引き受けることができます。 AWS CLI AWS 詳細については、「IAM ユーザーガイド」の「ロールを引き受けることができない」を参照してください。

IAM ロールは、フェデレーティッドユーザーアクセス、一時的な IAM ユーザーアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行されているアプリケーションに役立ちます。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。

ポリシーを使用したアクセスの管理

でアクセスを制御する AWS には、ポリシーを作成し、ID AWS またはリソースにアタッチします。ポリシーは、ID またはリソースに関連付けられたときにアクセス許可を定義します。 は、プリンシパルがリクエストを行うときにこれらのポリシー AWS を評価します。ほとんどのポリシーは JSON ドキュメント AWS として に保存されます。JSON ポリシードキュメントの詳細については、IAM ユーザーガイドの「JSON ポリシーの概要」を参照してください。

ポリシーを使用して、管理者は、どのプリンシパルがどのリソースに対してどの条件でアクションを実行できるかを定義することで、誰が何にアクセスできるかを指定します。

デフォルトでは、ユーザーやロールに権限はありません。IAM 管理者は IAM ポリシーを作成し、ユーザーが引き受けることができるロールに追加します。IAM ポリシーは、オペレーションの実行に使用される方法に関係なく、アクセス許可を定義します。

アイデンティティベースのポリシー

ID ベースのポリシーは、ID (ユーザー、グループ、またはロール) にアタッチする JSON アクセス許可ポリシードキュメントです。これらのポリシーは、ID が実行できるアクション、リソース、および条件を制御します。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。

アイデンティティベースのポリシーは、インラインポリシー (単一のアイデンティティに直接埋め込む) または 管理ポリシー (複数のアイデンティティにアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーとインラインポリシーを選択する方法については、IAM ユーザーガイド「管理ポリシーとインラインポリシーの選択」を参照してください。

リソースベースのポリシー

リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。例としては、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーなどがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスをコントロールできます。リソースベースのポリシーで、プリンシパルを指定する必要があります。

リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーでは、IAM の AWS マネージドポリシーを使用できません。

その他のポリシータイプ

AWS は、より一般的なポリシータイプによって付与されるアクセス許可の最大数を設定できる追加のポリシータイプをサポートしています。

  • アクセス許可の境界 — アイデンティティベースのポリシーが IAM エンティティに付与できるアクセス許可の上限を設定します。詳細については、「IAM ユーザーガイド」の「IAM エンティティのアクセス許可境界」を参照してください。

  • サービスコントロールポリシー (SCPs) — 内の組織または組織単位の最大アクセス許可を指定します AWS Organizations。詳細については、AWS Organizations ユーザーガイドの「サービスコントロールポリシー」を参照してください。

  • リソースコントロールポリシー (RCPs) – アカウント内のリソースに対して使用可能なアクセス許可の上限を設定します。詳細については、「AWS Organizations ユーザーガイド」の「リソースコントロールポリシー (RCP)」を参照してください。

  • セッションポリシー – ロールまたはフェデレーティッドユーザーの一時セッションを作成するときにパラメータとして渡される高度なポリシー。詳細については、「IAM ユーザーガイド」の「セッションポリシー」を参照してください。

複数のポリシータイプ

1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される権限を理解するのがさらに難しくなります。が複数のポリシータイプが関与する場合にリクエストを許可するかどうか AWS を決定する方法については、「IAM ユーザーガイド」の「ポリシー評価ロジック」を参照してください。

アクセスコントロール

Amazon SNS には、 AWS Identity and Access Management (IAM) ポリシーと同じ言語で記述されたポリシーを使用する独自のリソースベースのアクセス許可システムがあります。これは、Amazon SNS ポリシーや IAM ポリシーで同様の結果を達成できることを意味します。

注記

すべての が自分のアカウントのユーザーに権限を委任 AWS アカウント できることを理解することが重要です。クロスアカウントアクセスによって、追加のユーザーを管理しなくても、 AWS リソースへのアクセスを共有することができます。クロスアカウントのアクセスの詳細については、IAM ユーザーガイドの「クロスアカウントアクセスの有効化」を参照してください。

Amazon SNS のポリシーアクション

ポリシーアクションのサポート:あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。

Amazon SNS アクションの一覧については、「サービス認可リファレンス」の「Amazon Simple Notification Service で定義されるリソース」を参照してください。

Amazon SNS のポリシーアクションは、アクションの前に次のプレフィックスを使用します。

sns

単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。

"Action": [ "sns:action1", "sns:action2" ]

Amazon SNS のアイデンティティベースポリシーの例を確認するには、「Amazon Simple Notification Service のアイデンティティベースのポリシーの例」を参照してください。

Amazon SNS のポリシーリソース

ポリシーリソースのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルのアクセス許可をサポートしていないアクションの場合、ワイルドカード (*) を使用して、ステートメントがすべてのリソースに適用されることを示します。

"Resource": "*"

Amazon SNS リソースタイプとその ARN の一覧については、「サービス認可リファレンス」の「Amazon Simple Notification Service で定義されるアクション」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Resources Defined by Amazon Simple Notification Service」(Amazon Simple Notification Service で定義されるリソース) を参照してください。

Amazon SNS のアイデンティティベースポリシーの例を確認するには、「Amazon Simple Notification Service のアイデンティティベースのポリシーの例」を参照してください。

Amazon SNS のポリシー条件キー

サービス固有のポリシー条件キーのサポート: あり

管理者は JSON AWS ポリシーを使用して、誰が何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。

Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドAWS 「グローバル条件コンテキストキー」を参照してください。

Amazon SNS 条件キーの一覧については、「サービス認可リファレンス」の「Amazon Simple Notification Service の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、「Resources Defined by Amazon Simple Notification Service」(Amazon Simple Notification Service で定義されるリソース) を参照してください。

Amazon SNS のアイデンティティベースポリシーの例を確認するには、「Amazon Simple Notification Service のアイデンティティベースのポリシーの例」を参照してください。

Amazon SNS での ACL

ACL のサポート: なし

アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。

Amazon SNS での ABAC

ABAC (ポリシー内のタグ) のサポート: 一部

属性ベースのアクセスコントロール (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグをアタッチし、プリンシパルのタグがリソースのタグと一致するときにオペレーションを許可する ABAC ポリシーを設計できます。

タグに基づいてアクセスを管理するには、aws:ResourceTag/key-nameaws:RequestTag/key-name、または aws:TagKeys の条件キーを使用して、ポリシーの 条件要素でタグ情報を提供します。

サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。

ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属性ベースのアクセスコントロール (ABAC) を使用する」を参照してください。

Amazon SNS での一時的な認証情報の使用

一時的な認証情報のサポート: あり

一時的な認証情報は、 AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。 AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、IAM ユーザーガイドの「IAM および IAM と連携する一時的なセキュリティ認証情報」を参照してください。 AWS のサービス

Amazon SNS のクロスサービスプリンシパル許可

転送アクセスセッション (FAS) のサポート: あり

転送アクセスセッション (FAS) は、 を呼び出すプリンシパルのアクセス許可と AWS のサービス、ダウンストリームサービス AWS のサービス へのリクエストをリクエストする を使用します。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。

Amazon SNS のサービスロール

サービスロールのサポート: あり

サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービスに許可を委任するロールを作成する」を参照してください。

警告

サービスロールの許可を変更すると、Amazon SNS の機能が破損する可能性があります。Amazon SNS が指示する場合以外は、サービスロールを編集しないでください。

Amazon SNS のサービスにリンクされたロール

サービスにリンクされたロールのサポート: なし

サービスにリンクされたロールは、 にリンクされたサービスロールの一種です AWS のサービス。サービスは、ユーザーに代わってアクションを実行するロールを引き受けることができます。サービスにリンクされたロールは に表示され AWS アカウント 、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。

サービスにリンクされたロールの作成または管理の詳細については、「IAM と提携するAWS のサービス」を参照してください。表の「サービスリンクロール」列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。

Amazon SNS のアイデンティティベースの ポリシー

ID ベースのポリシーのサポート: あり

アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。ID ベースのポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。

IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。

Amazon SNS のアイデンティティベースのポリシー例

Amazon SNS のアイデンティティベースポリシーの例を確認するには、「Amazon Simple Notification Service のアイデンティティベースのポリシーの例」を参照してください。

Amazon SNS 内のリソースベースのポリシー

リソースベースのポリシーのサポート

あり

リソースベースのポリシーは、リソースに添付する JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーでは、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーティッドユーザー、または を含めることができます AWS のサービス。

クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。