Amazon Comprehend の ID ベースのポリシー例 - Amazon Comprehend

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

Amazon Comprehend の ID ベースのポリシー例

デフォルトでは、ユーザーおよびロールには Amazon Comprehend リソースを作成または変更するアクセス許可がありません。また、、 AWS Command Line Interface (AWS CLI) AWS Management Console、または を使用してタスクを実行することはできません AWS API。必要なリソースに対してアクションを実行するアクセス許可をユーザーに付与するには、IAM管理者はIAMポリシーを作成できます。その後、管理者はIAMポリシーをロールに追加し、ユーザーはロールを引き受けることができます。

これらのポリシードキュメントの例を使用して IAM ID ベースのJSONポリシーを作成する方法については、IAM「 ユーザーガイド」のIAM「ポリシーの作成 (コンソール)」を参照してください。

Amazon Comprehend で定義されているアクションとリソースタイプの詳細については、ARNs各リソースタイプの の形式など、「サービス認可リファレンス」のAmazon Comprehend のアクション、リソース、および条件キー」を参照してください。

ポリシーのベストプラクティス

ID ベースのポリシーでは、アカウント内で誰が Amazon Comprehend リソースを作成、アクセス、または削除できるを決定します。これらのアクションを実行すると、 AWS アカウントに料金が発生する可能性があります。アイデンティティベースポリシーを作成したり編集したりする際には、以下のガイドラインと推奨事項に従ってください:

  • AWS マネージドポリシーを開始して、最小権限のアクセス許可に移行 – ユーザーとワークロードへのアクセス許可の付与を開始するには、多くの一般的なユースケースのアクセス許可を付与するAWS マネージドポリシーを使用します。これらは で使用できます AWS アカウント。ユースケースに固有の AWS カスタマー管理ポリシーを定義することで、アクセス許可をさらに減らすことをお勧めします。詳細については、IAM「 ユーザーガイド」のAWS 「 管理ポリシーAWS 」または ジョブ機能の 管理ポリシーを参照してください。

  • 最小権限のアクセス許可を適用する - IAMポリシーでアクセス許可を設定する場合、タスクの実行に必要なアクセス許可のみを付与します。これを行うには、特定の条件下で特定のリソースに対して実行できるアクションを定義します。これは、最小特権アクセス許可とも呼ばれています。IAM を使用してアクセス許可を適用する方法の詳細については、 ユーザーガイドの「」の「ポリシーとアクセス許可IAM」を参照してください。 IAM

  • IAM ポリシーの条件を使用してアクセスをさらに制限する – ポリシーに条件を追加して、アクションとリソースへのアクセスを制限できます。例えば、ポリシー条件を記述して、すべてのリクエストを を使用して送信する必要があることを指定できますSSL。また、 などの特定の を通じてサービスアクションが使用されている場合 AWS のサービス、 条件を使用してサービスアクションへのアクセスを許可することもできます AWS CloudFormation。詳細については、「 ユーザーガイド」のIAMJSON「ポリシー要素: 条件」を参照してください。 IAM

  • IAM Access Analyzer を使用してIAMポリシーを検証し、安全で機能的なアクセス許可を確保します – IAM Access Analyzer は、ポリシーがポリシー言語 (JSON) とIAMベストプラクティスに準拠するように、新規および既存のIAMポリシーを検証します。IAM Access Analyzer には、安全で機能的なポリシーの作成に役立つ 100 を超えるポリシーチェックと実用的な推奨事項が用意されています。詳細については、IAM「 ユーザーガイド」のIAM「Access Analyzer を使用したポリシーの検証」を参照してください。

  • 多要素認証が必要 (MFA) – でIAMユーザーまたはルートユーザーを必要とするシナリオがある場合は AWS アカウント、 をオンにMFAしてセキュリティを強化します。API オペレーションが呼び出されるMFAタイミングを要求するには、ポリシーにMFA条件を追加します。詳細については、「 ユーザーガイド」の「 によるセキュアAPIアクセスMFA」を参照してください。 IAM

のベストプラクティスの詳細についてはIAM、「 ユーザーガイド」の「 セキュリティのベストプラクティスIAM」を参照してください。 IAM

Amazon Comprehend コンソールの使用法

Amazon Comprehend コンソールにアクセスするには、最小限のアクセス許可セットが必要です。これらのアクセス許可により、 内の Amazon Comprehend リソースの詳細を一覧表示および表示できます AWS アカウント。最小限必要な許可よりも制限が厳しいアイデンティティベースのポリシーを作成すると、そのポリシーを持つエンティティ (ユーザーまたはロール) に対してコンソールが意図したとおりに機能しません。

AWS CLI または のみに呼び出しを行うユーザーに対して、最小限のコンソールアクセス許可を付与する必要はありません AWS API。代わりに、実行しようとしているAPIオペレーションに一致するアクションにのみアクセスを許可します。

Amazon Comprehend コンソールの最小アクセス許可については、 ComprehendReadOnly AWS 管理ポリシーをエンティティにアタッチできます。詳細については、「 ユーザーガイド」の「ユーザーへのアクセス許可の追加」を参照してください。 IAM

Amazon Comprehend コンソールを使用するには、次のポリシーに示されているアクションのアクセス許可も必要です。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:ListRoles", "iam:GetRole", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation" ], "Effect": "Allow", "Resource": "*" } ] }

Amazon Comprehend コンソールには、以下の理由でこれらの追加のアクセス許可が必要になります。

  • iam アカウントの使用可能なIAMロールを一覧表示するアクセス許可。

  • トピックモデリング用のデータが含まれる Amazon S3 バケットおよびオブジェクトにアクセスするための s3 アクセス許可。

コンソールを使用して非同期バッチジョブまたはトピックモデリングジョブを作成する場合、コンソールにジョブのIAMロールを作成させるオプションがあります。IAM ロールを作成するには、ロールとポリシーを作成し、IAMロールにポリシーをアタッチするために、ユーザーに次の追加のアクセス許可を付与する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

Amazon Comprehend コンソールには、以下の理由でこれらの追加のアクセス許可が必要になります。

  • ロールを作成し、ポリシーをロールにアタッチするための iam アクセス許可。iam:PassRole アクションにより、コンソールは Amazon Comprehend にロールを渡すことができます。

自分の権限の表示をユーザーに許可する

この例では、IAMユーザーがユーザー ID にアタッチされているインラインポリシーとマネージドポリシーを表示できるようにするポリシーを作成する方法を示します。このポリシーには、 コンソールで、または 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 Comprehend ドキュメント分析アクションを使用するためのアクセス許可を付与しています。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowDetectActions", "Effect": "Allow", "Action": [ "comprehend:DetectEntities", "comprehend:DetectKeyPhrases", "comprehend:DetectDominantLanguage", "comprehend:DetectSentiment", "comprehend:DetectTargetedSentiment", "comprehend:DetectSyntax", "textract:DetectDocumentText", "textract:AnalyzeDocument" ], "Resource": "*" } ] }

このポリシーには、DetectEntitiesDetectKeyPhrasesDetectDominantLanguageDetectTargetedSentimentDetectSentiment および DetectSyntax アクションを使用するためのアクセス許可を付与するステートメントが 1 つあります。ポリシーステートメントは、2 つの Amazon Textract APIメソッドを使用するアクセス許可も付与します。Amazon Comprehend は、これらのメソッドを呼び出して、イメージファイルとスキャンされたPDFドキュメントからテキストを抽出します。このような種類の入力ファイルに対してカスタム推論を実行することがないユーザーの場合は、これらのアクセス許可を削除できます。

このポリシーが適用されるユーザーが、アカウント内でバッチアクションや非同期アクションを実行することはできません。

アイデンティティベースのポリシーでアクセス権限を得るプリンシパルを指定していないため、ポリシーでは Principal エレメントを指定していません。ユーザーにポリシーをアタッチすると、そのユーザーが暗黙のプリンシパルになります。アクセス許可ポリシーをIAMロールにアタッチすると、ロールの信頼ポリシーで識別されたプリンシパルがアクセス許可を取得します。

すべての Amazon Comprehend APIアクションとそれらが適用されるリソースを示す表については、「サービス認可リファレンス」のAmazon Comprehend のアクション、リソース、および条件キー」を参照してください。

KMS 暗号化を使用するために必要なアクセス許可

非同期ジョブでデータおよびジョブの暗号化に Amazon Key Management Service (KMS) を完全に使用するには、次のポリシーに示すアクションのアクセス許可を付与する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "kms:CreateGrant" ], "Effect": "Allow", "Resource": "*" }, { "Action": [ "kms:Decrypt", "kms:GenerateDatakey" ], "Effect": "Allow", "Resource": "*", "Condition": { "StringEquals": { "kms:ViaService": [ "s3.region.amazonaws.com" ] } } } ] }

Amazon Comprehend を使用した非同期ジョブの作成では、Amazon S3 に保存されている入力データを使用します。S3 には、保存されたデータを暗号化するオプションがあり、その暗号化は Amazon Comprehend ではなく S3 によって行われます。Amazon Comprehend ジョブが使用するデータアクセスロールに、元の入力データの暗号化に使用されたキーへの kms:Decrypt アクセス許可を与えると、暗号化された入力データを復号化して読み取ることができます。

また、KMSカスタマーマネージドキー (CMK) を使用して S3 の出力結果を暗号化したり、ジョブ処理中に使用されるストレージボリュームを暗号化することもできます。これを行うときは、両方のタイプの暗号化に同じKMSキーを使用できますが、これは必須ではありません。出力暗号化とボリューム暗号化のキーを指定するジョブを作成するときは、個別のフィールドを使用できます。また、別のアカウントのKMSキーを使用することもできます。

KMS 暗号化を使用する場合、ボリューム暗号化には kms:CreateGrant アクセス許可が必要であり、出力データ暗号化には アクセスkms:GenerateDataKey許可が必要です。暗号化された入力を読み取るには (入力データがすでに Amazon S3 によって暗号化されている場合など)、kms:Decrypt アクセス許可が必要です。IAM ロールは、必要に応じてこれらのアクセス許可を付与する必要があります。ただし、キーが現在使用されているアカウントとは異なるアカウントからのものである場合、その kms キーのKMSキーポリシーは、ジョブのデータアクセスロールにもこれらのアクセス許可を付与する必要があります。

AWS Amazon Comprehend の 管理 (事前定義) ポリシー

AWS は、 によって作成および管理されるスタンドアロンIAMポリシーを提供することで、多くの一般的なユースケースに対応します AWS。これらの AWS マネージドポリシーは、一般的なユースケースに必要なアクセス許可を付与するため、必要なアクセス許可を調査する必要がなくなります。詳細については、「 ユーザーガイド」のAWS 「 マネージドポリシー」を参照してください。 IAM

アカウント内のユーザーにアタッチできる次の AWS 管理ポリシーは、Amazon Comprehend に固有のものです。

  • ComprehendFullAccess — トピックモデリングジョブの実行を含む Amazon Comprehend リソースへのフルアクセスを許可します。IAM ロールを一覧表示して取得するアクセス許可が含まれます。

  • ComprehendReadOnlyStartDominantLanguageDetectionJob、、StartEntitiesDetectionJob、、、 StartKeyPhrasesDetectionJob StartSentimentDetectionJob StartTargetedSentimentDetectionJobを除くすべての Amazon Comprehend アクションを実行するアクセス許可を付与しますStartTopicsDetectionJob

Amazon Comprehend を使用するユーザーには、次の追加ポリシーを適用する必要があります。

{ "Version": "2012-10-17", "Statement": [ { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

IAM コンソールにサインインし、そこで特定のポリシーを検索することで、管理アクセス許可ポリシーを確認できます。

これらのポリシーは、 または を使用している場合 AWS SDKsに機能します AWS CLI。

また、独自のカスタムIAMポリシーを作成して、Amazon Comprehend アクションとリソースのアクセス許可を許可することもできます。こうしたカスタムポリシーは、該当するアクセス許可が必要なユーザーやグループ、ロールにアタッチできます。

バッチ操作に必要なロールベースのアクセス許可

Amazon Comprehend 非同期オペレーションを使用するには、Amazon Comprehend にドキュメントコレクションが含まれている Amazon S3 バケットへのアクセス許可を付与する必要があります。このためには、Amazon Comprehend サービスプリンシパルと信頼関係を構築できるように、アカウントにデータアクセスロールを作成します。ロールの作成の詳細は、『AWS Identity and Access Management ユーザーガイド』の「AWS のサービスにアクセス許可を委任するロールの作成」を参照してください。

以下は、作成したロールに対する信頼ポリシーの例を示しています。混乱した代理の防止に役立つようにするには、1 つ以上のグローバル条件コンテキストキーを使用してアクセス許可の範囲を制限します。aws:SourceAccount 値をアカウント ID に設定します。ArnEquals 条件を使用する場合は、aws:SourceArn値をジョブARNの に設定します。Amazon Comprehend はジョブの作成の一環としてこの番号を生成するためARN、 のジョブ番号にはワイルドカードを使用します。

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "comprehend.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "111122223333" }, "ArnEquals": { "aws:SourceArn": "arn:aws:comprehend:us-west-2:111122223333:pii-entities-detection-job/*" } } } ] }

ロールを作成したら、そのロールに対するアクセスポリシーを作成します。これにより、入力データを含む Amazon S3 バケットへのアクセス許可が Amazon S3 の GetObject および ListBucket に付与され、Amazon S3 出力データバケットへのアクセス許可が Amazon S3 の PutObject に付与されます。

Amazon Comprehend のすべてのアクションを許可するアクセス許可

にサインアップしたら AWS、ユーザーの作成やアクセス許可の管理など、アカウントを管理する管理者ユーザーを作成します。

Amazon Comprehend の操作では、Amazon Comprehend のすべてのアクションに対するアクセス許可を持つユーザー (このユーザーはサービス別の管理者とみなすことができる) を作成することもできます。このユーザーに以下のアクセス権限をアタッチできます。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "AllowAllComprehendActions", "Effect": "Allow", "Action": [ "comprehend:*", "iam:ListRoles", "iam:GetRole", "s3:ListAllMyBuckets", "s3:ListBucket", "s3:GetBucketLocation", "iam:CreateRole", "iam:CreatePolicy", "iam:AttachRolePolicy", "kms:CreateGrant", "kms:Decrypt", "kms:GenerateDatakey" ], "Resource": "*" }, { "Action": [ "iam:PassRole" ], "Effect": "Allow", "Resource": "arn:aws:iam::*:role/*Comprehend*" } ] }

これらのアクセス許可の暗号化関係は、以下の方法で変更できます。

  • Amazon Comprehend が暗号化された S3 バケットに保存されているドキュメントを分析できるようにするには、IAMロールに アクセスkms:Decrypt許可が必要です。

  • Amazon Comprehend が分析ジョブを処理するコンピューティングインスタンスにアタッチされたストレージボリュームに保存されているドキュメントを暗号化できるようにするには、IAMロールに kms:CreateGrant許可が必要です。

  • Amazon Comprehend が S3 バケットの出力結果を暗号化できるようにするには、IAMロールに kms:GenerateDataKey許可が必要です。

トピックモデリングアクションを許可するアクセス許可

次のアクセス許可ポリシーでは、Amazon Comprehend のトピックモデリングオペレーションを実行するためのアクセス許可がユーザーに付与しています。

{ "Version": "2012-10-17", "Statement": [{ "Sid": "AllowTopicModelingActions", "Effect": "Allow", "Action": [ "comprehend:DescribeTopicsDetectionJob", "comprehend:ListTopicsDetectionJobs", "comprehend:StartTopicsDetectionJob", ], "Resource": "*" ] } ] }

カスタム非同期分析ジョブに必要なアクセス許可

重要

モデルアクセスを制限するIAMポリシーがある場合、カスタムモデルで推論ジョブを完了することはできません。IAM ポリシーは、カスタム非同期分析ジョブのワイルドカードリソースを持つように更新する必要があります。

StartDocumentClassificationJob と を使用している場合はStartEntitiesDetectionJobAPIs、現在ワイルドカードをリソースとして使用していない限り、IAMポリシーを更新する必要があります。トレーニング済みモデルStartEntitiesDetectionJobを使用して を使用している場合、これはユーザーに影響を与えず、変更を加える必要はありません。

以下のポリシー例には、古いリファレンスが含まれています。

{ "Action": [ "comprehend:StartDocumentClassificationJob", "comprehend:StartEntitiesDetectionJob", ], "Resource": [ "arn:aws:comprehend:us-east-1:123456789012:document-classifier/myClassifier", "arn:aws:comprehend:us-east-1:123456789012:entity-recognizer/myRecognizer" ], "Effect": "Allow" }

これは、 StartDocumentClassificationJob と を正常に実行するために使用する必要がある更新されたポリシーです StartEntitiesDetectionJob。

{ "Action": [ "comprehend:StartDocumentClassificationJob", "comprehend:StartEntitiesDetectionJob", ], "Resource": [ "arn:aws:comprehend:us-east-1:123456789012:document-classifier/myClassifier", "arn:aws:comprehend:us-east-1:123456789012:document-classification-job/*", "arn:aws:comprehend:us-east-1:123456789012:entity-recognizer/myRecognizer", "arn:aws:comprehend:us-east-1:123456789012:entities-detection-job/*" ], "Effect": "Allow" }