Amazon のアクセスの設定 CloudSearch - Amazon CloudSearch

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

Amazon のアクセスの設定 CloudSearch

AWS Identity and Access Management (IAM) アクセスポリシーを使用して、Amazon CloudSearch 設定サービスおよび各検索ドメインのドキュメント、検索、提案サービスへのアクセスを制御します。アクセスポリシーは、ユーザーやプロセスに対して実行が許可されているアクションを定義するアクセス権限を明示的にリストした JSON ドキュメントです。アクセスポリシーの導入については、AWS IAM ポリシーの概要を参照してください。

Amazon CloudSearch 設定サービス APIs とドメインサービス APIs個別に制御します。例えば、本番ドメインの設定を変更できるユーザーは制限するが、開発やテストのためにチームのメンバーが独自のドメインを作成および管理することは許可することもできます。同様に、開発ドメインやテストドメインはアップロード、検索、提案サービスに対する匿名リクエストを受け入れるように設定するが、本番ドメインはロックしてアプリケーションからの認証リクエストのみを受け入れるようにすることもできます。

AWS がリクエストを受け取ると、リクエストが既知の AWS ユーザーであることを認証してから、関連するポリシーを確認して、そのユーザーにリクエストされたアクションをリクエストされたリソースで実行する権限があるかどうかを判断します。ユーザーに対して明示的にアクションの実行が許可されていない場合は、リクエストは拒否されます。ポリシーの評価時に、AWS によって明示的な拒否が見つかった場合、その拒否はあらゆる明示的で有効な許可に優先します。

重要

認証を有効にするには、Amazon CloudSearch リクエストにアクセスキーで署名する必要があります。唯一の例外は、匿名アクセスにドメインのアップロード、検索、提案サービスを許可する場合です。詳細については、「リクエストへの署名」を参照してください。

Amazon のアクセスポリシーの記述 CloudSearch

Amazon CloudSearch は、ユーザーベースのポリシーリソースベースのポリシーの両方をサポートしています。

  • ユーザーベースのポリシーは、特定の IAM ロール、グループ、またはユーザーに添付されます。ユーザーベースのポリシーでは、ユーザーまたはプロセスがアクセスできるアカウント内の検索ドメインと実行できるアクションを指定します。ユーザーベースのポリシーをユーザー、グループ、ロールにアタッチするには、 コンソール、AWS CLI、または AWS SDK を使用します。Amazon CloudSearch 設定サービスアクションへのアクセスを制御するには、ユーザーベースのポリシーを定義する必要があります。(ここでいうユーザーは必ずしも人物ではなく、単に関連するアクセス権限を持ったアイデンティティのことです。例えば、ドメインに検索リクエストを送信するための認証情報を持たせる必要があるアプリケーションを表すユーザーを作成する場合もあります)

  • Amazon のリソースベースのポリシー CloudSearch は、特定の検索ドメインにアタッチされます。リソースベースのポリシーは、検索ドメインへのアクセス権限を持つユーザーと、そのユーザーが使用できるドメインサービスを指定します。リソースベースのポリシーは、特定のドメインのドキュメント、検索、提案サービスへのアクセスのみを制御します。Amazon CloudSearch 設定サービスアクションへのアクセスを設定するために使用することはできません。リソースベースのポリシーをドメインにアタッチするには、Amazon CloudSearch コンソール、AWS CLIまたは AWS SDKsを使用します。

一般的に、ユーザーベースのポリシーを設定して Amazon CloudSearch APIsへのアクセスを管理することをお勧めします。アクセス権限を一か所で管理でき、必要な変更はほぼ即座に反映されるためです。ただし、ドメインの検索サービスに対するパブリックアクセスを許可したり、IP アドレスに基づいてアクセスを制限するには、リソースベースのポリシーをドメインに設定する必要があります。(ユーザーベースのポリシーを使用した IP ベースの古いアクセスポリシーは、できるだけ早いうちに置換することをお勧めします。) また、リソースベースのポリシーを使用して他のアカウントのドメインへのアクセスを簡単に許可することもできます。ドメインのリソースベースのポリシーに対する変更処理は、ユーザーベースのポリシーに対する変更よりも大幅に時間がかかることに注意してください。

IAM コンソールは、Amazon のユーザーベースのポリシーとリソースベースのポリシーの両方を作成するのに役立ちます CloudSearch。詳細については、Amazon ECRマネージドポリシーを参照してください。

Amazon のアクセスポリシーの内容 CloudSearch

Amazon のアクセスポリシーでは、次の情報を指定します CloudSearch。

  • Version には、ステートメントと互換性のあるポリシー言語のバージョンを指定します。バージョンは常に 2012-10-17 に設定されます。

  • Resource は、ユーザーベースのポリシーが適用されるドメインの ARN (Amazon リソースネーム) です。 Resourceは、ポリシーがリソースに直接アタッチされるため、Amazon CloudSearch 設定サービスで設定されたリソースベースのポリシーでは指定されません。Amazon CloudSearch ARNs「」を参照してください CloudSearch ARNs

  • Effect は、指定されたアクションへのアクセスをステートメントが認証するかブロックするかを指定します。Allow または Deny を指定する必要があります。

  • Sid は、ポリシーステートメントにわかりやすい名前を付けることができるオプションの文字列です。

  • Action は、ステートメントが適用される Amazon CloudSearch アクションを指定します。サポートされているアクションについては、Amazon CloudSearch アクションを参照してください。選択ユーザーに管理アクセスを付与する必要がある場合は、ワイルドカード (*) を使用してすべてのアクションへのアクセスを設定できます。(この場合、セキュリティを追加するために多要素認証を有効にする方がいいかもしれません。 詳細については、MFA 保護 API アクセスの設定 を参照してください。) ワイルドカードは、アクション名内でもサポートされています。例えば、"Action":["cloudsearch:Describe*] はすべての設定サービス Describe アクションに一致します。例えば、DescribeDomainsDescribeServiceAccessPolicies などです。

  • Condition は、ポリシーを実行するタイミングの条件を指定します。匿名の IP ベースのアクセスを設定する場合、アクセスルールを適用する IP アドレスを指定します。例えば、"IpAddress": {"aws:SourceIp": ["192.0.2.0/32"]} です。

  • Principal は、リソースベースのポリシーでドメインへのアクセスを許可するユーザーを指定します。Principal は IMA を使用して設定されたユーザーベースのポリシーでは指定されません。リソースベースのポリシーの Principal 値では、他の AWS アカウントまたは自分のアカウントのユーザーを指定できます。例えば、アカウント 555555555555 にアクセス権限を付与するには、"Principal":{"AWS":["arn:aws:iam::555555555555:root"]} と指定します。ワイルドカード (*) を指定すると、ドメインへの匿名アクセスが有効になります。匿名アクセスは推奨されていません。匿名アクセスを有効にする場合は、少なくともドメインにリクエストを送信できる IP アドレスを制限する条件を指定する必要があります。詳細については、「指定された IP アドレスからドメインへのアクセスの許可」を参照してください。

Amazon のアクセスポリシーの例については CloudSearch、「」を参照してくださいAmazon CloudSearch ポリシーの例

CloudSearch ARNs

ポリシーの Amazon Resource Name (ARN) は、ポリシーを適用するドメインを一意に指定します。ARN は、AWS がリソースを識別するために使用する標準形式です。ARN にある 12 桁の数字が AWS のアカウント ID です。Amazon CloudSearch ARNsは の形式ですarn:aws:cloudsearch:REGION:ACCOUNT-ID:domain/DOMAIN-NAME

次のリストで、ARN の可変要素を説明します。

  • REGION は、アクセス許可を設定する Amazon CloudSearch ドメインが存在する AWS リージョンです。REGION にワイルドカード (*) を使用するとすべてのリージョンを指定できます。

  • ACCOUNT-ID は、ハイフンなしの AWS アカウント ID です (例: 111122223333)。

  • DOMAIN-NAME は、特定の検索ドメインを識別します。DOMAIN-NAME にワイルドカード (*) を指定すると、指定したリージョン内のお客様のアカウントのすべてのドメインを指定できます。名前が同じプレフィックスで始まる複数のドメインがある場合は、ワイルドカードを使用してそれらのドメインすべてに一致させることができます。例えば、dev-*dev-testdev-moviesdev-sandbox などに一致します。新規ドメインに同じプレフィックスを持つ名前をつけた場合は、その新規ドメインにもポリシーが適用されることに注意してください。

例えば、次の ARN はアカウント 111122223333 が所有し、us-east-1 リージョンに存在する movies ドメインを識別します。

arn:aws:cloudsearch:us-east-1:111122223333:domain/movies

次の例では、ユーザーベースのポリシーで ARN を使用してリソースを指定する方法を示しています。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:search"], "Resource": "arn:aws:cloudsearch:us-east-1:111122223333:domain/movies" } ] }

ドメインの ARN は Amazon CloudSearch コンソールのドメインダッシュボードに表示され、 を呼び出すことでも利用できますDescribeDomains

重要

2011-02-01 API を使用して作成されたドメインの ARN を指定する場合は、以前の Amazon CloudSearch サービス名 を使用する必要がありますcs。例えば、arn:aws:cs:us-east-1:111122223333:domain/movies です。2011 ドメインと 2013 の両方のドメインに対してアクセスを構成するポリシーを定義する必要がある場合は、ドメインごとに正しい ARN 形式を指定してください。詳細については、「構成サービスアクセスポリシーが機能しない」を参照してください。

Amazon CloudSearch アクション

指定するアクションによって、ステートメントが適用される Amazon CloudSearch APIsが制御されます。すべての Amazon CloudSearch アクションにはcloudsearch:、 などのプレフィックス が付きますcloudsearch:search。サポートされているアクションを次に示します。

  • cloudsearch:document は、ドキュメントサービス API へのアクセスを許可します。インデックス作成のために検索ドメインにドキュメントをアップロードするには、document アクションを使用するアクセス権限が必要です。

  • cloudsearch:search は、検索 API へのアクセスを許可します。ドメインに検索リクエストを送信するには、search アクションを使用するアクセス権限が必要です。

  • cloudsearch:suggest は、提案 API へのアクセスを許可します。ドメインから提案を取得するには、suggest アクションを使用するアクセス権限が必要です。

  • cloudsearch:CONFIGURATION-ACTION は、指定された設定サービスアクションへのアクセスを許可します。Amazon CloudSearch コンソールにアクセスするには、 DescribeDomainsおよび ListDomainNames設定アクションを使用するアクセス許可が必要です。設定アクションはユーザーベースのポリシーでのみで指定できます。アクションの詳細なリストについては、「アクション」を参照してください。

Amazon CloudSearch ポリシーの例

このセクションでは、Amazon CloudSearch アクセスポリシーの例をいくつか示します。

Amazon CloudSearch Configuration Service への読み取り専用アクセス権の付与

設定サービスへの読み取り専用アクセスを付与するには、以下のアクションのみを許可します。ユーザーが本番用ドメインの設定を確認することは許可するが、変更はできないようにする場合に便利です。

  • cloudsearch:DescribeAnalysisSchemes

  • cloudsearch:DescribeAvailabilityOptions

  • cloudsearch:DescribeDomains

  • cloudsearch:DescribeExpressions

  • cloudsearch:DescribeIndexFields

  • cloudsearch:DescribeScalingParameters

  • cloudsearch:DescribeServiceAccessPolicies

  • cloudsearch:DescribeSuggesters

  • cloudsearch:ListDomainNames

以下のユーザーベースのポリシーは、アカウント 555555555555 が所有する movies ドメインの設定サービスに対する読み取り専用アクセスを付与します。ポリシーでは、アクションにワイルドカードを使用して、Describe または List で始まるすべてのアクションへのアクセスを許可しています。今後 API に追加される describe または list アクションへのアクセスも許可されることに注意してください。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:Describe*", "cloudsearch:List*"], "Resource": "arn:aws:cloudsearch:us-east-1:555555555555:domain/movies" } ] }

すべての Amazon CloudSearch Configuration Service アクションへのアクセス権の付与

ドメインサービスアクションではなく、すべての CloudSearch 設定サービスアクションへのアクセスを許可する Allowステートメントを含めることで、すべての Amazon 設定サービスアクションへのアクセスを許可できます。こうすることで、ユーザーに対してドメインへのデータのアップロードやドメインからのデータの取得は許可せずに管理アクセスを付与できます。これを行う 1 つの方法は、ワイルドカードを使用してすべての Amazon CloudSearch アクションへのアクセスを許可し、ドメインサービスアクションへのアクセスをブロックする拒否ステートメントを含めることです。以下のユーザーベースのポリシーは、us-west-2 リージョン内の 111122223333 アカウントが所有するすべてのドメインの設定サービスに対するアクセスを付与します。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:*"], "Resource": "arn:aws:cloudsearch:us-west-2:111122223333:domain/*" }, { "Effect": "Deny", "Action": ["cloudsearch:document", "cloudsearch:search", "cloudsearch:suggest"], "Resource": "arn:aws:cloudsearch:us-west-2:111122223333:domain/*" } ] }

すべての Amazon CloudSearch サービスへの無制限アクセスの許可

ユーザーベースのポリシーを使用して、すべての設定 CloudSearch サービスアクションとすべてのドメインサービスを含むすべての Amazon サービスへの無制限アクセスを許可できます。これを行うには、アクション、リージョン、ドメイン名にワイルドカードを指定します。次のポリシーにより、ユーザーは 111122223333 アカウントが所有する任意のリージョンの任意のドメインのすべての Amazon CloudSearch アクションにアクセスできます。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:*"], "Resource": "arn:aws:cloudsearch:*:111122223333:domain/*" } ] }

Amazon CloudSearch ドメインにドキュメントをアップロードするアクセス許可の付与

cloudsearch:document アクションを指定して、ユーザーに対して検索ドメインにドキュメントをアップロードするアクセス権限を付与できます。例えば、次のユーザーベースのポリシーでは、ユーザーは 111122223333 アカウントが所有する us-east-1 内の movies ドメインにドキュメントをアップロードできます。

{ "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:document"], "Resource": "arn:aws:cloudsearch:us-east-1:111122223333:domain/movies" } ] }

別の AWS アカウントに Amazon CloudSearch アクセスを付与する

ドメインのクロスアカウントアクセスを設定するには、 CloudSearch次の 2 つのオプションがあります。

オプション 説明
クロスアカウントアクセス用の IAM ロールを設定します。 セキュリティは強化されますが、複雑なリクエスト署名が必要です。詳細については、IAM ドキュメントの「IAM ロールを使用したクロスアカウント API アクセス」を参照してください。
リソースベースのポリシーを CloudSearch ドメインにアタッチし、ユーザーベースの管理ポリシーを IAM ロールにアタッチします。 実行が簡単。詳細については、IAM ドキュメントの「IAM ユーザーにアクセス権限を委任するロールの作成」および「ウォークスルー: ユーザーが所有する IAM ロールを使用した AWS アカウント間でのアクセスの委任」を参照してください。

このトピックでは、2 番目のオプションの例を示し、リソースベースのポリシーを CloudSearch ドメインに追加します。アカウント #1 はアカウント ID 111111111111 の所有であり、アカウント #2 はアカウント ID 999999999999 の所有であると仮定します。アカウント #1 がアカウント #2 に対して movies ドメインの検索サービスを使用するアクセス権限を付与する場合、2 つのステップが必要です。

  1. アカウント #1 は、アカウント #2 へのアクセスを許可する Amazon CloudSearch コンソールを使用して、リソースベースのポリシーをドメインにアタッチします。

    { "Version":"2012-10-17", "Statement":[ { "Sid":"search_only", "Effect":"Allow", "Action":["cloudsearch:search"], "Principal":{"AWS":["arn:aws:iam::999999999999:root"]} } ] }
  2. アカウント #2 は IAM コンソールを使用して、そのアカウントが所有する IAM ロールにユーザーベースのマネージドポリシーをアタッチします。

    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["cloudsearch:search"], "Resource": "arn:aws:cloudsearch:us-east-1:111111111111:domain/movies" } ] }
重要

Amazon のリソースベースのポリシーを設定するには CloudSearch、 cloudsearch:UpdateServiceAccessPoliciesアクションを使用するアクセス許可が必要です。

選択した IP アドレスから Amazon CloudSearch ドメインへのアクセスの許可

Amazon CloudSearch 設定サービスで設定されたリソースベースのアクセスポリシーは、匿名アクセスをサポートしています。これにより、署名されていないリクエストを検索ドメインのサービスに送信できます。指定された IP アドレスからの匿名アクセスを許可するには、Principal 値にワイルドカードを使用し、許可された IP アドレスをポリシー内の Condition 要素として指定します。

重要

指定された IP アドレスからの匿名アクセスを許可すると、その性質上、検索ドメインにアクセスするためにユーザー認証情報が必要な場合よりも安全性が低くなります。指定された IP アドレスからのみのアクセスを許可する場合でも、匿名アクセスはお勧めしません。現在匿名アクセスを許可している場合は、署名リクエストを送信するようにアプリケーションをアップグレードし、ユーザーベースおよびリソースベースのポリシーを設定してアクセスを制御してください。

Amazon EC2 インスタンスからのリクエストにアクセス権限を付与するリソースベースのポリシーを作成している場合は、インスタンスのパブリック IP アドレスを指定する必要があります。

IP アドレスは標準の Classless Inter-Domain Routing (CIDR) 形式で指定します。例えば、10.24.34.0/24 は範囲 10.24.34.0~10.24.34.255 を指定します。一方、10.24.34.0/32 は 1 つの IP アドレス 10.24.34.0 を指定します。CIDR 表記の詳細については、「RFC 4632」を参照してください。

例えば、以下のポリシーでは、AWS アカウント 111122223333 が所有する movies ドメインの検索アクションへのアクセスを IP アドレス 192.0.2.0/32 に許可しています。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"search_only", "Effect":"Allow", "Principal":"*", "Action":["cloudsearch:search"], "Condition":{"IpAddress":{"aws:SourceIp":"192.0.2.0/32"}} } ] }

Amazon CloudSearch ドメインの検索サービスへのパブリックアクセスの許可

ドメイン内の検索エンドポイントに対するパブリックアクセスを許可する必要がある場合は、条件のないリソースベースのポリシーを設定できます。これにより、あらゆる IP アドレスから送信された無署名リクエストが有効になります。

重要

検索ドメインに対するパブリックアクセスを許可するということは、ドメインに送信されるリクエストのボリュームを制御しないということです。悪意あるユーザーによってドメインに大量のリクエストが送信され、正規ユーザーや運用コストに影響を与える可能性があります。

例えば、次のポリシーは、AWS アカウント 111122223333 が所有する movies ドメインの検索アクションに対するパブリックアクセスを許可します。

{ "Version":"2012-10-17", "Statement":[ { "Sid":"public_search", "Effect":"Allow", "Principal":"*", "Action":["cloudsearch:search"] } ] }

AWS マネジメントコンソール CloudSearch を使用した Amazon のアクセスの設定

ユーザーベースのポリシーを設定するには
  1. AWS Management Console にサインインして、IAM コンソール (https://console.aws.amazon.com/iam/) を開きます。

  2. ユーザー、グループ、またはロールにポリシーをアタッチして、Amazon アクセス CloudSearch 許可を設定します。詳細については、「ポリシーの管理 (AWS マネジメントコンソール)」を参照してください。Amazon のユーザーベースのポリシーの詳細については、 CloudSearch 「」を参照してくださいAmazon のアクセスポリシーの記述 CloudSearch

リソースベースのポリシーを設定するには
  1. AWS マネジメントコンソールにサインインし、https://console.aws.amazon.com/cloudsearch/home で Amazon CloudSearch コンソールを開きます。

  2. 設定するドメイン名を選択します。

  3. [ドメイン設定] タブで、[アクセスポリシー] の横にある [編集] を選択します。

  4. ドメインアクセスポリシーの変更が完了したら、[送信]] を選択します。

Amazon がアクセスポリシー CloudSearch を更新している間、ドメインは Processing状態のままになります。

CloudSearch を使用した Amazon のアクセスの設定 AWS CLI

CloudSearch を使用して、Amazon のユーザーベースのポリシーとリソースベースのポリシーの両方を設定できますAWS CLI。AWS CLI のインストールおよびセットアップの詳細については、「AWS Command Line Interface ユーザーガイド」を参照してください。

ユーザーベースのポリシーを設定するには
リソースベースのポリシーを設定するには
  • aws cloudsearch update-service-access-policies コマンドを実行し、--access-policies オプションでアクセスポリシーを指定します。アクセスポリシーは引用符で囲み、アクセスポリシー内のすべての引用符はバックスラッシュでエスケープする必要があります。Amazon のリソースベースのポリシーの詳細については、 CloudSearch 「」を参照してくださいAmazon のアクセスポリシーの記述 CloudSearch

    以下の例は、movies ドメインが IP アドレス 192.0.2.0 からの検索リクエストを受け入れるように設定します。

    aws cloudsearch update-service-access-policies --domain-name movies --access-policies "{\"Version\":\"2012-10-17\",\"Statement\":[{ \"Sid\":\"search_only\", \"Effect\":\"Allow\", \"Principal\": \"*\", \"Action\":\"cloudsearch:search\", \"Condition\":{\"IpAddress\":{\"aws:SourceIp\":\"192.0.2.0/32\"}}} ]}" { "AccessPolicies": { "Status": { "PendingDeletion": false, "State": "Processing", "CreationDate": "2014-04-30T22:07:30Z", "UpdateVersion": 9, "UpdateDate": "2014-04-30T22:07:30Z" }, "Options": "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Sid\":\"\", \"Effect\":\"Allow\",\"Principal\":\"*\", \"Action\":\"cloudsearch:search\", \"Condition\":{\"IpAddress\":{\"aws:SourceIp\": \"192.0.2.0/32\"}}}]}" } }

リソースベースのポリシーの更新は、完了までに多少の時間がかかります。aws cloudsearch describe-service-access-policies コマンドを使用して、ポリシーの状態を確認できます。ポリシーが適用されると、ポリシーの状態が Active に変わります。

aws cloudsearch describe-service-access-policies コマンドを使用して、ドメインのポリシーを取得できます。

AWS SDK を使用してドメインのエンドポイントへのアクセスを設定する

AWS SDKs (Android および iOS SDKs) は、 を含む Amazon CloudSearch Configuration API で定義されているすべての Amazon CloudSearch アクションをサポートしますUpdateServiceAccessPolicies。AWS SDK のインストールと使用の詳細については、「AWS Software Development Kits」(AWS ソフトウェアデベロップメントキット) を参照してください。