認証するために AWS Identity and Access Management を使用する
AWS Identity and Access Management (IAM) は管理者が AWS リソースへのアクセスを安全に制御するために役立つ AWS のサービスです。IAM 管理者は、誰が Amazon Location リソースの使用を認証 (サインイン) および承認 (アクセス許可を付与する) できるかを制御します。IAM は、追加費用なしで使用できる AWS のサービス です。
トピック
対象者
AWS Identity and Access Management (IAM) の使用方法は、ロールによって異なります。
-
サービスユーザー - 機能にアクセスできない場合は、管理者に許可をリクエストします (「Amazon Location Service Identity and Access のトラブルシューティング」を参照)
-
サービス管理者 - ユーザーアクセスを決定し、アクセス許可リクエストを送信します (「Amazon Location Service と IAM の連携」を参照)
-
IAM 管理者 - アクセスを管理するポリシーを記述します (「Amazon Location Service のアイデンティティベースのポリシーの例」を参照)
アイデンティティによる認証
認証とは、アイデンティティ認証情報を使用して AWS にサインインする方法です。ユーザーは、AWS アカウントのルートユーザー、IAM ユーザーとして、または IAM ロールを引き受けることによって、認証される必要があります。
AWS IAM アイデンティティセンター (IAM Identity Center)、シングルサインオン認証、Google/Facebook 認証情報などの ID ソースからの認証情報を使用して、フェデレーテッドアイデンティティとしてサインインできます。サインインの詳細については、「AWS サインイン ユーザーガイド」の「How to sign in to your AWS アカウント」を参照してください。
プログラムによるアクセスの場合、AWS はリクエストに暗号で署名するための SDK と CLI を提供します。詳細については、「IAM ユーザーガイド」の「API リクエストに対する AWS Signature Version 4」を参照してください。
AWS アカウント のルートユーザー
AWS アカウントを作成すると、すべての AWS のサービスとリソースに対する完全なアクセス権を持つ AWS アカウントルートユーザーと呼ばれる 1 つのサインイン ID を使用して開始します。日常的なタスクには、ルートユーザーを使用しないことを強くお勧めします。ルートユーザー認証情報を必要とするタスクについては、「IAM ユーザーガイド」の「ルートユーザー認証情報が必要なタスク」を参照してください。
フェデレーテッドアイデンティティ
ベストプラクティスでは、人間のユーザーが一時的な認証情報を使用して AWS のサービス にアクセスする際、アイデンティティプロバイダーとのフェデレーションを使用することが求められます。
フェデレーテッドアイデンティティは、エンタープライズディレクトリ、ウェブ ID プロバイダー、Directory Service のユーザーであり、ID ソースからの認証情報を使用して AWS のサービスにアクセスするユーザーです。フェデレーティッドアイデンティティは、一時的な認証情報を提供するロールを引き受けます。
アクセスを一元管理する場合は、AWS IAM アイデンティティセンター をお勧めします。詳細については、「AWS IAM アイデンティティセンター ユーザーガイド」の「What is IAM Identity Center?」を参照してください。
IAM ユーザーとグループ
IAM ユーザーは、1 人のユーザーまたは 1 つのアプリケーションに対して特定の許可を持つアイデンティティです。長期認証情報を持つ IAM ユーザーの代わりに一時的な認証情報を使用することをお勧めします。詳細については、「IAM ユーザーガイド」の「人間のユーザーが一時的な認証情報を使用して AWS にアクセスするにはID プロバイダーとのフェデレーションの使用が必要です」を参照してください。
IAM グループは IAM ユーザーのコレクションを指定し、大量のユーザーのアクセス許可の管理を容易にします。詳細については、「IAM ユーザーガイド」の「IAM ユーザーに関するユースケース」を参照してください。
IAM ロール
IAM ロールは、一時的な認証情報を提供する特定のアクセス許可を持つ ID です。ユーザーから IAM ロールに切り替える (コンソール)、または AWS CLI や AWS API オペレーションを呼び出すことで、ロールを引き受けることができます。詳細については、「IAM ユーザーガイド」の「ロールを引き受けることができない」を参照してください。
IAM ロールは、フェデレーションユーザーアクセス、一時的な IAM ユーザーアクセス許可、クロスアカウントアクセス、クロスサービスアクセス、および Amazon EC2 で実行されているアプリケーションに役立ちます。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。
ポリシーを使用したアクセス権の管理
AWS でアクセスを制御するには、ポリシーを作成して AWS ID またはリソースにアタッチします。ポリシーはアイデンティティやリソースに関連付けて、これらのアクセス許可を定義します。AWS は、プリンシパルがリクエストを行う際に、それらのポリシーを評価します。大半のポリシーは JSON ドキュメントとして AWS に保存されます。JSON ポリシードキュメントの詳細については、「IAM ユーザーガイド」の「JSON ポリシー概要」を参照してください。
ポリシーを使用して、管理者は、どのプリンシパルがどのリソースに対してどの条件でアクションを実行できるかを定義することで、誰が何にアクセスできるかを指定します。
デフォルトでは、ユーザーやロールに権限はありません。IAM 管理者は IAM ポリシーを作成し、ユーザーが引き受けることができるロールに追加します。IAM ポリシーは、オペレーションの実行方法を問わずアクセス許可を定義します。
アイデンティティベースのポリシー
アイデンティティベースのポリシーは、アイデンティティ (ユーザー、グループ、ロール) にアタッチする JSON アクセス許可ポリシードキュメントです。これらのポリシーは、アイデンティティが実行できるアクション、リソース、および条件を制御します。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
ID ベースのポリシーは、インラインポリシー (単一の ID に直接埋め込む) または管理ポリシー (複数の ID にアタッチされたスタンドアロンポリシー) にすることができます。管理ポリシーおよびインラインポリシーのいずれかを選択する方法については、「IAM ユーザーガイド」の「管理ポリシーとインラインポリシーのいずれかを選択する」を参照してください。
リソースベースのポリシー
リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。例としては、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーなどがあります。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。リソースベースのポリシーで、プリンシパルを指定する必要があります。
リソースベースのポリシーは、そのサービス内にあるインラインポリシーです。リソースベースのポリシーで IAM の AWS マネージドポリシーを使用することはできません。
その他のポリシータイプ
AWS は、より一般的なポリシータイプで付与された最大の権限を設定できる、追加のポリシータイプをサポートしています。
-
アクセス許可の境界 – アイデンティティベースのポリシーで IAM エンティティに付与することのできる許可の上限を設定します。詳細については、「IAM ユーザーガイド」の「IAM エンティティのアクセス許可境界」を参照してください。
-
サービスコントロールポリシー (SCP) – AWS Organizations において組織または組織単位のアクセス許可の上限を指定します。詳細については、「AWS Organizations ユーザーガイド」の「サービスコントロールポリシー」を参照してください。
-
リソースコントロールポリシー (RCP) – アカウント内のリソースで利用できるアクセス許可の上限を定義します。詳細については、「AWS Organizations ユーザーガイド」の「リソースコントロールポリシー (RCP)」を参照してください。
-
セッションポリシー – ロールまたはフェデレーションユーザーの一時セッションを作成する際にパラメータとして渡す高度なポリシーです。詳細については、「IAM ユーザーガイド」の「セッションポリシー」を参照してください。
複数のポリシータイプ
1 つのリクエストに複数のタイプのポリシーが適用されると、結果として作成される権限を理解するのがさらに難しくなります。複数のポリシータイプが関連するとき、リクエストを許可するかどうかを AWS が決定する方法の詳細については、「IAM ユーザーガイド」の「ポリシーの評価ロジック」を参照してください。
Amazon Location Service と IAM の連携
IAM を使用して Amazon Location へのアクセスを管理する前に、Amazon Location で使用できる IAM 機能について理解しておく必要があります。
| IAM の機能 | Amazon Location サポート |
|---|---|
|
あり |
|
|
なし |
|
|
あり |
|
|
はい |
|
|
はい |
|
|
なし |
|
|
あり |
|
|
あり |
|
|
いいえ |
|
|
いいえ |
|
|
いいえ |
Amazon Location および AWS のその他のサービスが大部分の IAM 機能とどのように動作するかに関するおおまかな説明については、「IAM ユーザーガイド」の「IAM と連携する AWS のサービス」を参照してください。
Amazon Location のアイデンティティベースの ポリシー
アイデンティティベースのポリシーのサポート: あり
アイデンティティベースポリシーは、IAM ユーザー、ユーザーグループ、ロールなど、アイデンティティにアタッチできる JSON 許可ポリシードキュメントです。これらのポリシーは、ユーザーとロールが実行できるアクション、リソース、および条件をコントロールします。アイデンティティベースポリシーの作成方法については、「IAM ユーザーガイド」の「カスタマー管理ポリシーでカスタム IAM アクセス許可を定義する」を参照してください。
IAM アイデンティティベースのポリシーでは、許可または拒否するアクションとリソース、およびアクションを許可または拒否する条件を指定できます。JSON ポリシーで使用できるすべての要素について学ぶには、「IAM ユーザーガイド」の「IAM JSON ポリシーの要素のリファレンス」を参照してください。
Amazon Location のアイデンティティベースのポリシーの例
Amazon Location のアイデンティティベースポリシーの例を確認するには、「Amazon Location Service のアイデンティティベースのポリシーの例」を参照してください。
Amazon Location 内のリソースベースのポリシー
リソースベースのポリシーのサポート: なし
リソースベースのポリシーは、リソースにアタッチする JSON ポリシードキュメントです。リソースベースのポリシーには例として、IAM ロールの信頼ポリシーや Amazon S3 バケットポリシーがあげられます。リソースベースのポリシーをサポートするサービスでは、サービス管理者はポリシーを使用して特定のリソースへのアクセスを制御できます。ポリシーがアタッチされているリソースの場合、指定されたプリンシパルがそのリソースに対して実行できるアクションと条件は、ポリシーによって定義されます。リソースベースのポリシーで、プリンシパルを指定する必要があります。プリンシパルには、アカウント、ユーザー、ロール、フェデレーションユーザー、または AWS のサービス を含めることができます。
クロスアカウントアクセスを有効にするには、全体のアカウント、または別のアカウントの IAM エンティティを、リソースベースのポリシーのプリンシパルとして指定します。詳細については、「IAM ユーザーガイド」の「IAM でのクロスアカウントリソースアクセス」を参照してください。
Amazon Location のポリシーアクション
ポリシーアクションのサポート:あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
JSON ポリシーの Action 要素にはポリシー内のアクセスを許可または拒否するために使用できるアクションが記述されます。このアクションは関連付けられたオペレーションを実行するためのアクセス許可を付与するポリシーで使用されます。
Amazon Location のアクションのリストについては、サービス認可リファレンスの「Amazon Location Service によって定義されるアクション」を参照してください。
Amazon Location のポリシーアクションは、アクションの前にプレフィックスを使用します。
geo
単一のステートメントで複数のアクションを指定するには、アクションをカンマで区切ります。
"Action": [ "geo:action1", "geo:action2" ]
ワイルドカード (*) を使用して複数アクションを指定できます。例えば、Get という単語で始まるすべてのアクションを指定するには次のアクションを含めます。
"Action": "geo:Get*"
Amazon Location のアイデンティティベースポリシーの例を確認するには、「Amazon Location Service のアイデンティティベースのポリシーの例」を参照してください。
Amazon Location のポリシーリソース
ポリシーリソースのサポート: あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Resource JSON ポリシー要素はアクションが適用されるオブジェクトを指定します。ベストプラクティスとして、Amazon リソースネーム (ARN) を使用してリソースを指定します。リソースレベルの権限をサポートしないアクションの場合は、ステートメントがすべてのリソースに適用されることを示すために、ワイルドカード (*) を使用します。
"Resource": "*"
Amazon Location リソースのタイプとその ARN のリストを確認するには、「サービス認証リファレンス」の「Amazon Location Service で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Amazon Location Service」 定義されるアクションを参照してください。
Amazon Location のアイデンティティベースポリシーの例を確認するには、「Amazon Location Service のアイデンティティベースのポリシーの例」を参照してください。
Amazon Location のポリシー条件キー
サービス固有のポリシー条件キーのサポート: あり
管理者は AWS JSON ポリシーを使用して、だれが何にアクセスできるかを指定できます。つまり、どのプリンシパルがどのリソースに対してどのような条件下でアクションを実行できるかということです。
Condition 要素は、定義された基準に基づいてステートメントが実行されるタイミングを指定します。イコールや未満などの 条件演算子 を使用して条件式を作成して、ポリシーの条件とリクエスト内の値を一致させることができます。すべての AWS グローバル条件キーを確認するには、IAM ユーザーガイドのAWS グローバル条件コンテキストキーを参照してください。
Amazon Location の条件キーのリストについては、サービス認可リファレンスの「Amazon Location Service の条件キー」を参照してください。条件キーを使用できるアクションとリソースについては、「Amazon Location Service で定義されるアクション」を参照してください。
Amazon Location では、ポリシーステートメント内の特定のジオフェンスまたはデバイスへのアクセスを許可または拒否できる条件キーをサポートしています。次の条件キーが使用可能です。
-
ジオフェンス アクションで使用する
geo:GeofenceIds。タイプはArrayOfStringです。 -
トラッカーアクションで使用する
geo:DeviceIds。タイプはArrayOfStringです。
IAM ポリシーの geo:GeofenceIds では、次のアクションを使用できます。
-
BatchDeleteGeofences -
BatchPutGeofences -
GetGeofence -
PutGeofence
IAM ポリシーの geo:DeviceIds では、次のアクションを使用できます。
-
BatchDeleteDevicePositionHistory -
BatchGetDevicePosition -
BatchUpdateDevicePosition -
GetDevicePosition -
GetDevicePositionHistory
注記
これらの条件キーはBatchEvaluateGeofences、ListGeofences、ListDevicePositionまたはアクションでは使用できません。
Amazon Location のアイデンティティベースポリシーの例を確認するには、「Amazon Location Service のアイデンティティベースのポリシーの例」を参照してください。
Amazon Location での ACL
ACL のサポート: なし
アクセスコントロールリスト (ACL) は、どのプリンシパル (アカウントメンバー、ユーザー、またはロール) がリソースにアクセスするための許可を持つかを制御します。ACL はリソースベースのポリシーに似ていますが、JSON ポリシードキュメント形式は使用しません。
ABAC と Amazon Location
ABAC (ポリシー内のタグ) のサポート: あり
属性ベースのアクセス制御 (ABAC) は、タグと呼ばれる属性に基づいてアクセス許可を定義する認可戦略です。IAM エンティティと AWS リソースにタグを付けることで、プリンシパルのタグがリソースタグと一致するときに操作を許可する ABAC ポリシーを設計できます。
タグに基づいてアクセスを管理するには、aws:ResourceTag/、key-nameaws:RequestTag/、または key-nameaws:TagKeys の条件キーを使用して、ポリシーの 条件要素 でタグ情報を提供します。
サービスがすべてのリソースタイプに対して 3 つの条件キーすべてをサポートする場合、そのサービスの値はありです。サービスが一部のリソースタイプに対してのみ 3 つの条件キーのすべてをサポートする場合、値は「部分的」になります。
ABAC の詳細については、「IAM ユーザーガイド」の「ABAC 認可でアクセス許可を定義する」を参照してください。ABAC をセットアップする手順を説明するチュートリアルについては、「IAM ユーザーガイド」の「属属性ベースのアクセス制御 (ABAC) を使用する」を参照してください。
Amazon Location リソースのタグ付けの詳細については、「タグの使用方法」を参照してください。
リソースのタグに基づいてリソースへのアクセスを制限するためのアイデンティティベースポリシーの例を表示するには、「タグに基づいて リソースへのアクセスを制御する」を参照してください。
Amazon Location での一時的な認証情報の使用
一時的な認証情報のサポート: あり
一時的な認証情報は、AWS リソースへの短期的なアクセスを提供し、フェデレーションまたはスイッチロールの使用時に自動的に作成されます。AWS では、長期的なアクセスキーを使用する代わりに、一時的な認証情報を動的に生成することをお勧めします。詳細については、「IAM ユーザーガイド」の「IAM の一時的な認証情報」および「IAM と連携する AWS のサービス」を参照してください。
Amazon Location のクロスサービスプリンシパル許可
転送アクセスセッション (FAS) のサポート: なし
転送アクセスセッション (FAS) は、AWS のサービスを呼び出すプリンシパルの権限を、AWS のサービスのリクエストと合わせて使用し、ダウンストリームのサービスに対してリクエストを行います。FAS リクエストを行う際のポリシーの詳細については、「転送アクセスセッション」を参照してください。
Amazon Location のサービスロール
サービスロールのサポート: なし
サービスロールとは、サービスがユーザーに代わってアクションを実行するために引き受ける IAM ロールです。IAM 管理者は、IAM 内からサービスロールを作成、変更、削除できます。詳細については、「IAM ユーザーガイド」の「AWS のサービス に許可を委任するロールを作成する」を参照してください。
警告
サービスロールの許可を変更すると、Amazon Location の機能が破損する可能性があります。Amazon Location が指示する場合以外は、サービスロールを編集しないでください。
Amazon Location のサービスリンクロール
サービスにリンクされたロールのサポート: なし
サービスにリンクされたロールは、AWS のサービス にリンクされているサービスロールの一種です。サービスがロールを引き受け、ユーザーに代わってアクションを実行できるようになります。サービスにリンクされたロールは、AWS アカウント に表示され、サービスによって所有されます。IAM 管理者は、サービスにリンクされたロールのアクセス許可を表示できますが、編集することはできません。
サービスにリンクされたロールの作成または管理の詳細については、「IAM と提携する AWS のサービス」を参照してください。表の「サービスリンクロール」列に Yes と記載されたサービスを見つけます。サービスにリンクされたロールに関するドキュメントをサービスで表示するには、[はい] リンクを選択します。
認証されていないユーザーに対する Amazon Location Service の仕組み
ウェブやモバイルアプリケーションでのマップ表示など、Amazon Location Service を使用する多くのシナリオでは、IAM でサインインしていないユーザーにアクセスを許可する必要があります。このような認証されていないシナリオでは、2 つのオプションがあります。
-
API キーを使用する — 認証されていないユーザーにアクセス権を付与するには、Amazon Location Service リソースへの読み取り専用アクセスを許可する API キーを作成できます。これは、すべてのユーザーを認証したくない場合に便利です。例えば、Web アプリケーションなどです。API キーに関する詳細については、「API キーを使用して認証する」を参照してください。
-
Amazon Cognito を使用する — API キーに代わる方法として、Amazon Cognito を使用して匿名アクセスを許可する方法があります。Amazon Cognito では、認証されていないユーザーが実行できる操作を定義する IAM ポリシーを使用して、より詳細な認可を作成できます。Amazon Cognito の使用方法の詳細については、「ウェブで Amazon Cognito のアイデンティティプールを使用する」を参照してください。
認証されていないユーザーにアクセス権を与える方法の概要については、「Amazon Location Service を使用して認証する」を参照してください。
Amazon Location Service のアイデンティティベースのポリシーの例
デフォルトでは、ユーザーとロールには Amazon Location リソースを作成または変更するアクセス許可がありません。IAM 管理者は、リソースで必要なアクションを実行するための権限をユーザーに付与する IAM ポリシーを作成できます。
これらサンプルの JSON ポリシードキュメントを使用して IAM ID ベースのポリシーを作成する方法については、IAM ユーザーガイドの「IAM ポリシーを作成する (コンソール)」を参照してください。
Amazon Location が定義するアクションとリソースタイプ (リソースタイプごとの ARN の形式を含む) の詳細については、サービス認可リファレンスの「Amazon Location Service のアクション、リソース、および条件キー」を参照してください。
トピック
ポリシーに関するベストプラクティス
ID ベースのポリシーは、ユーザーのアカウント内で誰かが Amazon Location リソースを作成、アクセス、または削除できるどうかを決定します。これらのアクションでは、AWS アカウント に費用が発生する場合があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:
-
AWS マネージドポリシーを使用して開始し、最小特権の許可に移行する – ユーザーとワークロードへの許可の付与を開始するには、多くの一般的なユースケースのために許可を付与する AWS マネージドポリシーを使用します。これらは AWS アカウントで使用できます。ユースケースに固有の AWS カスタマー管理ポリシーを定義して、アクセス許可を絞り込むことをお勧めします。詳細については、「IAM ユーザーガイド」の「AWS マネージドポリシー」または「ジョブ機能の AWS マネージドポリシー」を参照してください。
-
最小特権を適用する – IAM ポリシーで許可を設定する場合は、タスクの実行に必要な許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用して許可を適用する方法の詳細については、「IAM ユーザーガイド」の「IAM でのポリシーとアクセス許可」を参照してください。
-
IAM ポリシーで条件を使用してアクセスをさらに制限する - ポリシーに条件を追加して、アクションやリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを SSL を使用して送信するように指定できます。また、CloudFormation などの特定の AWS のサービス を介して使用する場合、条件を使用してサービスアクションへのアクセスを許可することもできます。詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素:条件」を参照してください。
-
IAM Access Analyzer を使用して IAM ポリシーを検証し、安全で機能的な権限を確保する - IAM Access Analyzer は、新規および既存のポリシーを検証して、ポリシーが IAM ポリシー言語 (JSON) および IAM のベストプラクティスに準拠するようにします。IAM アクセスアナライザーは 100 を超えるポリシーチェックと実用的な推奨事項を提供し、安全で機能的なポリシーの作成をサポートします。詳細については、「IAM ユーザーガイド」の「IAM Access Analyzer でポリシーを検証する」を参照してください。
-
多要素認証 (MFA) を要求する – AWS アカウントで IAM ユーザーまたはルートユーザーを要求するシナリオがある場合は、セキュリティを強化するために MFA をオンにします。API オペレーションが呼び出されるときに MFA を必須にするには、ポリシーに MFA 条件を追加します。詳細については、「IAM ユーザーガイド」の「MFA を使用した安全な API アクセス」を参照してください。
IAM でのベストプラクティスの詳細については、「IAM ユーザーガイド」の「IAM でのセキュリティのベストプラクティス」を参照してください。
Amazon Location コンソールの使用
Amazon Location Service コンソールにアクセスするには、許可の最小限のセットが必要です。アクセス許可により、AWS アカウント の Amazon Location リソースの詳細をリストおよび表示できます。最小限必要なアクセス許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) ではコンソールが意図したとおりに機能しません。
AWS CLI または AWS API のみを呼び出すユーザーには、最小限のコンソール権限を付与する必要はありません。代わりに、実行しようとしている API オペレーションに一致するアクションのみへのアクセスを許可します。
ユーザーとロールが Amazon Location コンソールを使用できるようにするには、次のポリシーをエンティティにアタッチします。詳細については、「IAM ユーザーガイド」の「ユーザーへの許可の追加」を参照してください。
以下のポリシーでは、Amazon Location Service コンソールにアクセスして、AWS アカウント内の Amazon Location リソースの詳細を作成、削除、一覧表示、表示できるようにします。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GeoPowerUser", "Effect": "Allow", "Action": [ "geo:*", "geo-maps:*", "geo-places:*", "geo-routes:*" ], "Resource": "*" } ] }
または、読み取り専用アクセス権限を付与して、読み取り専用アクセスを容易にすることもできます。読み取り専用権限では、ユーザーがリソースの作成や削除などの書き込み操作を試みると、エラーメッセージが表示されます。例については、「トラッカーリソースの読み取り専用ポリシー」を参照してください。
自分の権限の表示をユーザーに許可する
この例では、ユーザーアイデンティティにアタッチされたインラインおよびマネージドポリシーの表示を IAM ユーザーに許可するポリシーの作成方法を示します。このポリシーには、コンソールで、または AWS CLI か AWS API を使用してプログラム的に、このアクションを完了する権限が含まれています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "ViewOwnUserInfo", "Effect": "Allow", "Action": [ "iam:GetUserPolicy", "iam:ListGroupsForUser", "iam:ListAttachedUserPolicies", "iam:ListUserPolicies", "iam:GetUser" ], "Resource": ["arn:aws:iam::*:user/${aws:username}"] }, { "Sid": "NavigateInConsole", "Effect": "Allow", "Action": [ "iam:GetGroupPolicy", "iam:GetPolicyVersion", "iam:GetPolicy", "iam:ListAttachedGroupPolicies", "iam:ListGroupPolicies", "iam:ListPolicyVersions", "iam:ListPolicies", "iam:ListUsers" ], "Resource": "*" } ] }
ポリシーでの Amazon Location Service リソースの使用
Amazon Location Service リソースに以下のプレフィックスを使用します。
| リソース | リソースプレフィックス |
|---|---|
| マップリソース | map |
| プレースリソース | place-index |
| ルートリソース | route-calculator |
| トラッキングリソース | tracker |
| ジオフェンスコレクションのリソース | geofence-collection |
次の ARN 構文を使用します。
arn:Partition:geo:Region:Account:ResourcePrefix/ResourceName
ARN の形式の詳細については、「Amazon リソースネーム (ARN) と AWS サービスの名前空間」を参照してください。
例
-
次の ARN を使用して、指定されたマップリソースへのアクセスを許可します。
"Resource": "arn:aws:geo:us-west-2:account-id:map/map-resource-name" -
特定のアカウントに属するすべての
mapリソースへのアクセスを指定するには、ワイルドカード (*) を使用します。"Resource": "arn:aws:geo:us-west-2:account-id:map/*" -
リソースの作成を含む、一部の Amazon Location アクションは、特定のリソースで実行できません。このような場合はワイルドカード *を使用する必要があります。
"Resource": "*"
Amazon Location リソースのタイプとその ARN のリストを確認するには、「サービス認証リファレンス」の「Amazon Location Service で定義されるリソース」を参照してください。どのアクションで各リソースの ARN を指定できるかについては、「Amazon Location Service」 定義されるアクションを参照してください。
デバイスの位置を更新する権限
複数のトラッカーのデバイス位置を更新するには、1 つ以上のトラッカーリソースへのアクセス権をユーザーに付与する必要があります。また、ユーザーがデバイスの位置を一括更新できるようにしたいとします。
この例では、Tracker1 リソースと Tracker2 リソースへのアクセスを許可することに加えて、次のポリシーにより、Tracker1 リソースと Tracker2 リソースに対する geo:BatchUpdateDevicePosition アクションを使用する権限も許可されます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:account-id:tracker/Tracker1", "arn:aws:geo:us-west-2:account-id:tracker/Tracker2" ] } ] }
ユーザーが特定のデバイスのデバイス位置のみを更新できるように制限したい場合は、そのデバイス ID に条件キーを追加できます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:account-id:tracker/Tracker1", "arn:aws:geo:us-west-2:account-id:tracker/Tracker2" ], "Condition":{ "ForAllValues:StringLike":{ "geo:DeviceIds":[ "deviceId" ] } } } ] }
トラッカーリソースの読み取り専用ポリシー
AWS アカウント内のすべてのトラッカーリソースに対して読み取り専用ポリシーを作成するには、すべてのトラッカーリソースへのアクセスを許可する必要があります。また、複数の端末の端末位置の取得、単一の端末からの端末位置の取得、位置履歴の取得を可能にするアクションへのアクセス権をユーザーに付与する必要があります。
この例では、次のポリシーは次のアクションにアクセス権限を付与します。
-
geo:BatchGetDevicePositionを使用して複数のデバイスの位置を取得します。 -
geo:GetDevicePositionを使用して 1 つのデバイスの位置を取得します。 -
geo:GetDevicePositionHistoryを使用してデバイスの位置履歴を取得します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchGetDevicePosition", "geo:GetDevicePosition", "geo:GetDevicePositionHistory" ], "Resource": "arn:aws:geo:us-west-2:account-id:tracker/*" } ] }
ジオフェンスの作成に関するポリシー
ユーザーにジオフェンスの作成を許可するポリシーを作成するには、ユーザーがジオフェンスコレクションに 1 つ以上のジオフェンスを作成できるようにする特定のアクションへのアクセスを許可する必要があります。
以下のポリシーは、Collection での以下のアクションに対する権限を付与します。
-
geo:BatchPutGeofenceを使用して複数のジオフェンスを作成します。 -
geo:PutGeofenceを使用して 1 つのジオフェンスを作成します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateGeofences", "Effect": "Allow", "Action": [ "geo:BatchPutGeofence", "geo:PutGeofence" ], "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection" } ] }
ジオフェンスの読み取り専用ポリシー
AWS アカウントのジオフェンスコレクションに保存されているジオフェンスの読み取り専用ポリシーを作成するには、ジオフェンスを保存しているジオフェンスコレクションから読み取るアクションへのアクセスを許可する必要があります。
以下のポリシーは、Collection での以下のアクションに対する権限を付与します。
-
geo:ListGeofencesは、指定されたジオフェンスコレクション内のジオフェンスを一覧表示します。 -
geo:GetGeofenceは、ジオフェンスコレクションからジオフェンスを取得します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetGeofences", "Effect": "Allow", "Action": [ "geo:ListGeofences", "geo:GetGeofence" ], "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection" } ] }
マップリソースをレンダリングする権限
マップをレンダリングするための十分な権限を付与するには、マップタイル、スプライト、グリフ、スタイル記述子へのアクセスを許可する必要があります。
-
geo:GetMapTileは、マップ上のフィーチャを選択的にレンダリングするために使用するマップタイルを取得します。 -
geo:GetMapSpritesは、PNG スプライトシートと、その中のオフセットを記述した対応する JSON ドキュメントを取得します。 -
geo:GetMapGlyphsは、テキストの表示に使用されるグリフを取得します。 -
geo:GetMapStyleDescriptorは、レンダリングルールを含むマップのスタイル記述子を取得します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "GetTiles", "Effect": "Allow", "Action": [ "geo:GetMapTile", "geo:GetMapSprites", "geo:GetMapGlyphs", "geo:GetMapStyleDescriptor" ], "Resource": "arn:aws:geo:us-west-2:account-id:map/Map" } ] }
検索操作を許可する権限
検索操作を許可するポリシーを作成するには、まず AWS アカウントのプレースインデックスリソースへのアクセスを許可する必要があります。また、ユーザーがジオコーディングでテキストを使用して検索したり、リバースジオコーディングで位置を使用して検索したりできるようにするアクションへのアクセス権を付与する必要があります。
この例では、PlaceIndex へのアクセス権を付与するだけでなく、次のポリシーによって以下のアクションにも権限が付与されます。
-
geo:SearchPlaceIndexForPositionは、特定の位置の近くの場所や興味のあるポイントを検索できます。 -
geo:SearchPlaceIndexForTextは、自由形式のテキストを使用して、住所、名前、都市、または地域を検索できます。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "Search", "Effect": "Allow", "Action": [ "geo:SearchPlaceIndexForPosition", "geo:SearchPlaceIndexForText" ], "Resource": "arn:aws:geo:us-west-2:account-id:place-index/PlaceIndex" } ] }
ルート計算ツールの読み取り専用ポリシー
ユーザーがルート計算リソースにアクセスしてルートを計算できるようにする読み取り専用ポリシーを作成できます。
この例では、ExampleCalculator へのアクセス権を付与するだけでなく、以下のポリシーによって以下の操作へのアクセス権限も付与されます。
-
geo:CalculateRouteは、出発位置、目的地位置、および経由地の位置のリストを考慮してルートを計算します。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "RoutesReadOnly", "Effect": "Allow", "Action": [ "geo:CalculateRoute" ], "Resource": "arn:aws:geo:us-west-2:accountID:route-calculator/ExampleCalculator" } ] }
条件キーに基づいてリソースアクセスを制御する
ジオフェンスまたはデバイスポジションを使用するためのアクセスを許可する IAM ポリシーを作成する場合、条件演算子 を使用して、ユーザーがアクセスできるジオフェンスまたはデバイスをより正確に制御できます。そのためには、ポリシーの Condition 要素にジオフェンス ID またはデバイス ID を含める必要があります。
次のポリシー例は、ユーザーが特定のデバイスのデバイス位置を更新することを許可するポリシーの作成方法を示しています。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "UpdateDevicePositions", "Effect": "Allow", "Action": [ "geo:BatchUpdateDevicePosition" ], "Resource": [ "arn:aws:geo:us-west-2:account-id:tracker/Tracker" ], "Condition":{ "ForAllValues:StringLike":{ "geo:DeviceIds":[ "deviceId" ] } } } ] }
タグに基づいて リソースへのアクセスを制御する
Amazon Location リソースを使用するアクセス権を付与する IAM ポリシーを作成する場合、属性ベースのアクセス制御 を使用して、ユーザーが変更、使用、または削除できるリソースをより適切に制御できます。そのためには、ポリシーの Condition 要素に タグ 情報を含めて、リソースタグに基づいてアクセスを制御します。
次のポリシー例は、ユーザーにジオフェンスを作成することを許可するポリシーの作成方法を示しています。これにより、Collection というジオフェンスコレクションに 1 つ以上のジオフェンスを作成する次のアクションを実行できる権限が付与されます。
-
geo:BatchPutGeofenceを使用して複数のジオフェンスを作成します。 -
geo:PutGeofenceを使用して 1 つのジオフェンスを作成します。
ただし、このポリシーでは、Collection タグ、Owner、にそのユーザーのユーザー名の値がある場合にのみ、 Condition 要素を使用してアクセス許可を付与します。
-
例えば、
richard-roeという名前のユーザーが Amazon LocationCollectionを表示しようとすると、そのCollectionにはOwner=richard-roeまたはowner=richard-roeのタグが付けられている必要があります。それ以外の場合、ユーザーはアクセスを拒否されます。注記
条件キー名では大文字と小文字が区別されないため、条件タグキー
OwnerはOwnerとownerの両方に一致します。詳細については、「IAM ユーザーガイド」の「IAM JSON ポリシー要素:条件」を参照してください。
{ "Version": "2012-10-17", "Statement": [ { "Sid": "CreateGeofencesIfOwner", "Effect": "Allow", "Action": [ "geo:BatchPutGeofence", "geo:PutGeofence" ], "Resource": "arn:aws:geo:us-west-2:account-id:geofence-collection/Collection", "Condition": { "StringEquals": {"geo:ResourceTag/Owner": "${aws:username}"} } } ] }
タグに基づいて AWS リソースにアクセスする権限を定義する方法のチュートリアルについては、「AWS Identity and Access Management ユーザーガイド」を参照してください。
Amazon Location Service Identity and Access のトラブルシューティング
Amazon Location と IAM の使用に伴って発生する可能性がある一般的な問題の診断や修復には、次の情報を利用してください。
トピック
Amazon Location でアクションを実行する認可がありません
アクションを実行する権限がないというエラーが表示された場合は、そのアクションを実行できるようにポリシーを更新する必要があります。
次のエラー例は、mateojackson IAM ユーザーがコンソールを使用して、ある リソースに関する詳細情報を表示しようとしたことを想定して、その際に必要なmy-example-widgetgeo: アクセス許可を持っていない場合に発生するものです。GetWidget
User: arn:aws:iam::123456789012:user/mateojackson is not authorized to perform: geo:GetWidgeton resource:my-example-widget
この場合、geo: アクションを使用して GetWidget リソースへのアクセスを許可するように、my-example-widgetmateojackson ユーザーのポリシーを更新する必要があります。
サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。
iam:PassRole を実行する権限がありません
iam:PassRole アクションを実行する権限がないというエラーが表示された場合は、ポリシーを更新して Amazon Location にロールを渡せるようにする必要があります。
一部の AWS のサービスでは、新しいサービスロールまたはサービスリンクロールを作成せずに、既存のロールをサービスに渡すことが許可されています。そのためには、サービスにロールを渡す権限が必要です。
次の例のエラーは、marymajor という IAM ユーザーがコンソールを使用して Amazon Location でアクションを実行しようとする場合に発生します。ただし、このアクションをサービスが実行するには、サービスロールから付与された権限が必要です。メアリーには、ロールをサービスに渡す許可がありません。
User: arn:aws:iam::123456789012:user/marymajoris not authorized to perform: iam:PassRole
この場合、Mary のポリシーを更新してメアリーに iam:PassRole アクションの実行を許可する必要があります。
サポートが必要な場合は、AWS 管理者に問い合わせてください。サインイン認証情報を提供した担当者が管理者です。
自分の AWS アカウント 以外のユーザーに Amazon Location リソースへのアクセスを許可したい
他のアカウントのユーザーや組織外の人が、リソースにアクセスするために使用できるロールを作成できます。ロールの引き受けを委託するユーザーを指定できます。リソースベースのポリシーまたはアクセスコントロールリスト (ACL) をサポートするサービスの場合、それらのポリシーを使用して、リソースへのアクセスを付与できます。
詳細については、以下を参照してください。
-
Amazon Location がこれらの機能をサポートしているかどうかを確認するには、「Amazon Location Service と IAM の連携」を参照してください。
-
所有している AWS アカウント 全体のリソースへのアクセス権を提供する方法については、「IAM ユーザーガイド」の「所有している別の AWS アカウント へのアクセス権を IAM ユーザーに提供」を参照してください。
-
サードパーティーの AWS アカウント にリソースへのアクセス権を提供する方法については、「IAM ユーザーガイド」の「サードパーティーが所有する AWS アカウント へのアクセス権を付与する」を参照してください。
-
ID フェデレーションを介してアクセスを提供する方法については、「IAM ユーザーガイド」の「外部で認証されたユーザー (ID フェデレーション) へのアクセスの許可」を参照してください。
-
クロスアカウントアクセスにおけるロールとリソースベースのポリシーの使用方法の違いについては、「IAM ユーザーガイド」の「IAM でのクロスアカウントのリソースへのアクセス」を参照してください。