

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

# Amazon Rekognition Custom Labels のセットアップ
<a name="setting-up"></a>

次の手順は、Amazon Rekognition Custom Labels コンソールと SDK をセットアップする方法を示しています。

Amazon Rekognition Custom Labels コンソールは次のブラウザで使用できることに注意してください。
+ **Chrome** - バージョン 21 以降
+ **Firefox** - バージョン 27 以降
+ **Microsoft Edge** - バージョン 88 以降
+ **Safari** - バージョン 7 以降。また、Safari を使用して、Amazon Rekognition Custom Labels コンソールで境界ボックスを描画することはできません。詳細については、「[境界ボックスによるオブジェクトのラベル付け](md-localize-objects.md)」を参照してください。

Amazon Rekognition Custom Labels を初めて使用する場合は、事前に以下のタスクをすべて完了してください。

**Topics**
+ [ステップ 1: AWS アカウントを作成する](su-account.md)
+ [ステップ 2: Amazon Rekognition Custom Labels コンソールのアクセス許可をセットアップする](su-console-policy.md)
+ [ステップ 3: コンソールバケットの作成](su-create-console-bucket.md)
+ [ステップ 4: AWS CLI と AWS SDKsを設定する](su-awscli-sdk.md)
+ [ステップ 5: (オプション) トレーニングファイルを暗号化する](su-encrypt-bucket.md)
+ [ステップ 6: (オプション) 以前のデータセットを新しいプロジェクトに関連付ける](su-associate-prior-dataset.md)

# ステップ 1: AWS アカウントを作成する
<a name="su-account"></a>

このステップでは、 AWS アカウントを作成し、管理ユーザーを作成し、 AWS SDK へのプログラムによるアクセス権の付与について説明します。

**Topics**
+ [にサインアップする AWS アカウント](#sign-up-for-aws)
+ [管理アクセスを持つユーザーを作成する](#create-an-admin)
+ [プログラム的なアクセス](#su-sdk-programmatic-access)

## にサインアップする AWS アカウント
<a name="sign-up-for-aws"></a>

がない場合は AWS アカウント、次の手順を実行して作成します。

**にサインアップするには AWS アカウント**

1. [https://portal.aws.amazon.com/billing/signup](https://portal.aws.amazon.com/billing/signup) を開きます。

1. オンラインの手順に従います。

   サインアップ手順の一環として、電話またはテキストメッセージを受け取り、電話キーパッドで検証コードを入力します。

   にサインアップすると AWS アカウント、 *AWS アカウントのルートユーザー* が作成されます。ルートユーザーには、アカウントのすべての AWS のサービス とリソースへのアクセス権があります。セキュリティベストプラクティスとして、ユーザーに管理アクセス権を割り当て、[ルートユーザーアクセスが必要なタスク](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks)の実行にはルートユーザーのみを使用するようにしてください。

AWS サインアッププロセスが完了すると、 から確認メールが送信されます。[https://aws.amazon.com/](https://aws.amazon.com/) の **[マイアカウント]** をクリックして、いつでもアカウントの現在のアクティビティを表示し、アカウントを管理することができます。

## 管理アクセスを持つユーザーを作成する
<a name="create-an-admin"></a>

にサインアップしたら AWS アカウント、日常的なタスクにルートユーザーを使用しないように AWS アカウントのルートユーザー、 を保護し AWS IAM アイデンティティセンター、 を有効にして管理ユーザーを作成します。

**を保護する AWS アカウントのルートユーザー**

1.  **ルートユーザー**を選択し、 AWS アカウント E メールアドレスを入力して、アカウント所有者[AWS マネジメントコンソール](https://console.aws.amazon.com/)として にサインインします。次のページでパスワードを入力します。

   ルートユーザーを使用してサインインする方法については、「*AWS サインイン ユーザーガイド*」の「[ルートユーザーとしてサインインする](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial)」を参照してください。

1. ルートユーザーの多要素認証 (MFA) を有効にします。

   手順については、*IAM* [ユーザーガイドの AWS アカウント 「ルートユーザー (コンソール) の仮想 MFA デバイス](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html)を有効にする」を参照してください。

**管理アクセスを持つユーザーを作成する**

1. IAM アイデンティティセンターを有効にします。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[AWS IAM アイデンティティセンターの有効化](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html)」を参照してください。

1. IAM アイデンティティセンターで、ユーザーに管理アクセスを付与します。

   を ID ソース IAM アイデンティティセンターディレクトリ として使用する方法のチュートリアルについては、「 *AWS IAM アイデンティティセンター ユーザーガイド*」の[「デフォルトを使用してユーザーアクセスを設定する IAM アイデンティティセンターディレクトリ](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html)」を参照してください。

**管理アクセス権を持つユーザーとしてサインインする**
+ IAM アイデンティティセンターのユーザーとしてサインインするには、IAM アイデンティティセンターのユーザーの作成時に E メールアドレスに送信されたサインイン URL を使用します。

  IAM Identity Center ユーザーを使用してサインインする方法については、*AWS サインイン 「 ユーザーガイド*[」の AWS 「 アクセスポータルにサインイン](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html)する」を参照してください。

**追加のユーザーにアクセス権を割り当てる**

1. IAM アイデンティティセンターで、最小特権のアクセス許可を適用するというベストプラクティスに従ったアクセス許可セットを作成します。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html)」を参照してください。

1. グループにユーザーを割り当て、そのグループにシングルサインオンアクセス権を割り当てます。

   手順については、「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[グループを追加する](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html)」を参照してください。

## プログラム的なアクセス
<a name="su-sdk-programmatic-access"></a>

ユーザーが の AWS 外部で を操作する場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) コンソール認証情報を一時的な認証情報として使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-account.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-account.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-account.html)  | 

# ステップ 2: Amazon Rekognition Custom Labels コンソールのアクセス許可をセットアップする
<a name="su-console-policy"></a>

Amazon Rekognition コンソールを使用するには、適切なアクセス許可を追加する必要があります。トレーニングファイルを[コンソールバケット](su-create-console-bucket.md)以外のバケットに保存する場合は、追加のアクセス許可が必要です。

**Topics**
+ [コンソールへのアクセスを許可する](#su-console-access)
+ [外部の Amazon S3 バケットへのアクセス](#su-external-buckets)
+ [アクセス許可の割り当て](#su-assign-permissions)

## コンソールへのアクセスを許可する
<a name="su-console-access"></a>

Amazon Rekognition Custom Labels コンソールを使用するには、Amazon S3、SageMaker AI Ground Truth、Amazon Rekognition Custom Labels を対象とする次の IAM ポリシーが必要です。アクセス許可の割り当ての詳細については、「[アクセス許可の割り当て](#su-assign-permissions)」を参照してください。

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:ListAllMyBuckets"
            ],
            "Resource": "*"
        },
        {
            "Sid": "s3Policies",
            "Effect": "Allow",
            "Action": [
                "s3:ListBucket",
                "s3:CreateBucket",
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging",
                "s3:GetBucketVersioning",
                "s3:GetObjectVersionTagging",
                "s3:PutBucketCORS",
                "s3:PutLifecycleConfiguration",
                "s3:PutBucketPolicy",
                "s3:PutObject",
                "s3:PutObjectTagging",
                "s3:PutBucketVersioning",
                "s3:PutObjectVersionTagging"
            ],
            "Resource": [
                "arn:aws:s3:::custom-labels-console-*"

            ]
        },
        {
            "Sid": "rekognitionPolicies",
            "Effect": "Allow",
            "Action": [
                "rekognition:*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "groundTruthPolicies",
            "Effect": "Allow",
            "Action": [
                "groundtruthlabeling:*"
            ],
            "Resource": "*"
        }
    ]
}
```

------

## 外部の Amazon S3 バケットへのアクセス
<a name="su-external-buckets"></a>

新しい AWS リージョンで Amazon Rekognition Custom Labels コンソールを初めて開くと、Amazon Rekognition Custom Labels はプロジェクトファイルの保存に使用されるバケット (コンソールバケット) を作成します。あるいは、自分の Amazon S3 バケット (外部バケット) を使用してイメージまたはマニフェストファイルをコンソールにアップロードすることもできます。外部バケットを使用するには、前のポリシーに次のポリシーブロックを追加します。`amzn-s3-demo-bucket` をバケットの名前に置き換えます。

```
        {
            "Sid": "s3ExternalBucketPolicies",
            "Effect": "Allow",
            "Action": [
                "s3:GetBucketAcl",
                "s3:GetBucketLocation",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectTagging",
                "s3:ListBucket",
                "s3:PutObject"
            ],
            "Resource": [
                "arn:aws:s3:::amzn-s3-demo-bucket*"
            ]
        }
```

## アクセス許可の割り当て
<a name="su-assign-permissions"></a>

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド*の「[ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」の指示に従います。

# ステップ 3: コンソールバケットの作成
<a name="su-create-console-bucket"></a>

Amazon Rekognition Custom Labels プロジェクトを使用して、モデルを作成および管理します。新しい AWS リージョンで Amazon Rekognition Custom Labels コンソールを初めて開くと、Amazon Rekognition Custom Labels は Amazon S3 バケット (コンソールバケット) を作成してプロジェクトを保存します。 AWS SDK オペレーションやデータセットの作成などのコンソールタスクでバケット名を使用する必要がある可能性があるため、後で参照できる場所にコンソールバケット名を記録する必要があります。

バケット名の形式は次のとおりです。`custom-labels-console`-*<region>*-*<random value>*。ランダム値により、バケット名の間に衝突が発生しないようにします。

**コンソールバケットを作成するには**

1. ユーザーに正しいアクセス許可があるかどうかを確認します。詳細については、「[コンソールへのアクセスを許可する](su-console-policy.md#su-console-access)」を参照してください。

1. にサインイン AWS マネジメントコンソール し、[https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/) で Amazon Rekognition コンソールを開きます。

1. **[開始する]** を選びます。

1. 現在の AWS リージョンでコンソールを初めて開いた場合は、**[First Time Set Up]** (初回セットアップ) ダイアログボックスで以下を実行します。

   1. 表示されている Amazon S3 バケットの名前をコピーします。この情報は後で必要になります。

   1. Amazon Rekognition Custom Labels に Amazon S3 バケット (コンソールバケット) の作成を代行させる場合は、**[S3 バケットを作成する]** を選択します。

1. ブラウザウィンドウを閉じます。

# ステップ 4: AWS CLI と AWS SDKsを設定する
<a name="su-awscli-sdk"></a>

Amazon Rekognition Custom Labels は AWS Command Line Interface 、 (AWS CLI) および AWS SDKs で使用できます。ターミナルから Amazon Rekognition Custom Labels オペレーションを実行する必要がある場合は、 AWS CLIをインストールします。アプリケーションを作成する場合は、使用しているプログラミング言語の AWS SDK をダウンロードします。

**Topics**
+ [AWS SDKS のインストール](#sdk-install-sdk)
+ [プログラマチックアクセス権を付与する](su-sdk-programmatic-access.md)
+ [SDK アクセス許可の設定](su-sdk-permissions.md)
+ [Amazon Rekognition Custom Labels オペレーションを呼び出す](su-sdk-list-projects.md)

## AWS SDKS のインストール
<a name="sdk-install-sdk"></a>

手順に従って、 AWS SDKsをダウンロードして設定します。

**AWS CLI と AWS SDKsをセットアップするには**
+ および使用する AWS SDKsをダウンロード[AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/getting-started-install.html)してインストールします。このガイドでは AWS CLI、、[Java](https://docs.aws.amazon.com/sdk-for-java/latest/developer-guide/setup.html)、Python の例を示します[https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/quickstart.html#installation)。 AWS SDKs[「Amazon Web Services のツール](https://aws.amazon.com/tools/)」を参照してください。

# プログラマチックアクセス権を付与する
<a name="su-sdk-programmatic-access"></a>

このガイドの AWS CLI および コード例は、ローカルコンピュータまたは Amazon Elastic Compute Cloud インスタンスなどの他の AWS 環境で実行できます。例を実行するには、例が使用する AWS SDK オペレーションへのアクセスを許可する必要があります。

**Topics**
+ [ローカルコンピュータでのコードの実行](#su-sdk-programmatic-access-general)
+ [AWS 環境でのコードの実行](#su-sdk-aws-environments)

## ローカルコンピュータでのコードの実行
<a name="su-sdk-programmatic-access-general"></a>

ローカルコンピュータでコードを実行するには、短期間の認証情報を使用して AWS SDK オペレーションへのアクセス権をユーザーに付与することをお勧めします。ローカルコンピュータでの AWS CLI および コード例の実行に関する具体的な情報については、「」を参照してください[ローカルコンピュータでのプロファイルの使用](#su-sdk-programmatic-access-customlabels-examples)。

ユーザーが の AWS 外部で を操作する場合は、プログラムによるアクセスが必要です AWS マネジメントコンソール。プログラムによるアクセスを許可する方法は、 がアクセスするユーザーのタイプによって異なります AWS。

ユーザーにプログラムによるアクセス権を付与するには、以下のいずれかのオプションを選択します。


****  

| プログラムによるアクセス権を必要とするユーザー | 目的 | 方法 | 
| --- | --- | --- | 
| IAM | (推奨) コンソール認証情報を一時的な認証情報として使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
|  ワークフォースアイデンティティ (IAM アイデンティティセンターで管理されているユーザー)  | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 
| IAM | 一時的な認証情報を使用して AWS CLI、、 AWS SDKs、または AWS APIs。 | 「IAM [ユーザーガイド」の「 AWS リソースでの一時的な認証情報](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_temp_use-resources.html)の使用」の手順に従います。 | 
| IAM | (非推奨)長期認証情報を使用して、 AWS CLI、 AWS SDKs、または AWS APIs。 |  使用するインターフェイスの指示に従ってください。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/rekognition/latest/customlabels-dg/su-sdk-programmatic-access.html)  | 

### ローカルコンピュータでのプロファイルの使用
<a name="su-sdk-programmatic-access-customlabels-examples"></a>

このガイドの AWS CLI および コード例は、 で作成した短期認証情報を使用して実行できます[ローカルコンピュータでのコードの実行](#su-sdk-programmatic-access-general)。認証情報や他の設定情報を取得するため、たとえばサンプルでは `custom-labels-access` という名前のプロファイルを使用しています: 

```
session = boto3.Session(profile_name='custom-labels-access')
rekognition_client = session.client("rekognition")
```

プロファイルが表すユーザーには、Amazon Rekognition Custom Labels SDK オペレーションおよび例で必要なその他の AWS SDK オペレーションを呼び出すアクセス許可が必要です。詳細については、「[SDK アクセス許可の設定](su-sdk-permissions.md)」を参照してください。権限を割り当てるには、「[SDK アクセス許可の設定](su-sdk-permissions.md)」を参照してください。

 AWS CLI および コード例で動作するプロファイルを作成するには、次のいずれかを選択します。作成するプロファイルの名前が `custom-labels-access` であることを確かめてください。
+ IAM が管理するユーザー - 「[IAM ロール (AWS CLI) の切り替え](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-cli.html)」の手順に従います。
+ ワークフォース ID (ユーザーが管理 AWS IAM アイデンティティセンター) — [使用する AWS CLI の設定 AWS IAM アイデンティティセンター](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-sso.html)の手順に従います。コード例については統合開発環境 (IDE) を使用することが推奨されます。こちらは、IAM Identity Center による認証を許可する AWS Toolkit をサポートしています。Java の例については「[Start building with Java](https://aws.amazon.com/developer/language/java/)」を参照してください。Python の例については「[Start building with Python](https://aws.amazon.com/developer/tools/#IDE_and_IDE_Toolkits)」を参照してください。その他の詳細については「[IAM Identity Center credentials](https://docs.aws.amazon.com/sdkref/latest/guide/feature-sso-credentials.html)」を参照してください。

**注記**  
コードを使用して、短期間の認証情報を取得できます。詳細については「[IAM ロール (AWS API) の切り替え](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_use_switch-role-api.html)」を参照してください。IAM Identity Center の場合は、「[Getting IAM role credentials for CLI access](https://docs.aws.amazon.com/singlesignon/latest/userguide/howtogetcredentials.html)」にある手順に従って、ロールの短期間の認証情報を取得します。

## AWS 環境でのコードの実行
<a name="su-sdk-aws-environments"></a>

 AWS Lambda 関数で実行されている本番コードなどの AWS 環境で、ユーザー認証情報を使用して AWS SDK 呼び出しに署名しないでください。代わりに、コードに必要なアクセス権限を定義するロールを設定します。次に、コードを実行する環境にそのロールをアタッチします。ロールをアタッチして一時的な認証情報を利用できるようにする方法は、コードを実行する環境によって異なります。
+ AWS Lambda 関数 — Lambda 関数の実行ロールを引き受けるときに Lambda が自動的に関数に提供する一時的な認証情報を使用します。認証情報は Lambda の環境変数で使用できます。プロファイルを指定する必要はありません。詳細については、「[Lambda 実行ロール](https://docs.aws.amazon.com/lambda/latest/dg/lambda-intro-execution-role.html)」を参照してください。
+ Amazon EC2 - Amazon EC2 のインスタンスメタデータエンドポイント認証情報プロバイダーを使用します。このプロバイダーは、Amazon EC2 インスタンスにアタッチされた Amazon EC2 *インスタンスプロファイル*を使用して、認証情報を自動的に生成して更新します。詳細については、「[Amazon EC2 インスタンスで実行されるアプリケーションに IAM ロールを使用してアクセス許可を付与する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)」を参照してください。
+ Amazon Elastic Container Service - コンテナ認証情報プロバイダーを使用します。Amazon ECS は認証情報をメタデータエンドポイントに送信して更新します。指定する*タスク IAM ロール*は、アプリケーションが使用する認証情報を管理するための戦略を提供します。詳細については、「[Interact with AWS services](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task-iam-roles.html)」を参照してください。

認証情報プロバイダーの詳細については、「[標準認証情報プロバイダー](https://docs.aws.amazon.com/sdkref/latest/guide/standardized-credentials.html)」を参照してください。

# SDK アクセス許可の設定
<a name="su-sdk-permissions"></a>

Amazon Rekognition Custom Labels SDK オペレーションを使用するには、Amazon Rekognition Custom Labels API およびモデルトレーニングに使用される Amazon S3 バケットへのアクセス許可が必要です。

**Topics**
+ [SDK オペレーションアクセス許可の付与](#su-grant-sdk-permissions)
+ [AWS SDK を使用するためのポリシーの更新](#su-sdk-policy-update)
+ [アクセス許可の割り当て](#su-sdk-assign-permissions)

## SDK オペレーションアクセス許可の付与
<a name="su-grant-sdk-permissions"></a>

タスクの実行に必要なアクセス許可のみを付与することをお勧めします (最小権限のアクセス許可)。例えば、[DetectCustomLabels](https://docs.aws.amazon.com/rekognition/latest/APIReference/API_DetectCustomLabels.html) を呼び出すには、`rekognition:DetectCustomLabels` を実行するためのアクセス許可が必要です。オペレーションのアクセス許可を確認するには、[「API リファレンス」](https://docs.aws.amazon.com/rekognition/latest/APIReference/Welcome.html)を確認してください。

アプリケーションを始めたばかりの場合は、必要な特定のアクセス許可がわからない場合があるため、より広範なアクセス許可から始めることができます。 AWS マネージドポリシーによって、作業の開始に役立つアクセス許可が提供されます。`AmazonRekognitionCustomLabelsFullAccess` AWS マネージドポリシーを使用して、Amazon Rekognition Custom Labels API への完全なアクセスを取得できます。詳細については、「[AWS マネージドポリシー: AmazonRekognitionCustomLabelsFullAccess](https://docs.aws.amazon.com/rekognition/latest/dg/security-iam-awsmanpol.html#security-iam-awsmanpol-custom-labels-full-access)」を参照してください。アプリケーションに必要なアクセス許可がわかったら、ユースケースに応じたカスタマー管理ポリシーを定義することによって、アクセス許可をさらに減らします。詳細については、「[カスタマー管理ポリシー](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_managed-vs-inline.html#customer-managed-policies)」を参照してください。

アクセス許可を割り当てるには、「[アクセス許可の割り当て](#su-sdk-assign-permissions)」を参照してください。

## AWS SDK を使用するためのポリシーの更新
<a name="su-sdk-policy-update"></a>

Amazon Rekognition Custom Labels の最新リリースで AWS SDK を使用するには、トレーニングイメージとテストイメージを含む Amazon S3 バケットにアクセスするためのアクセス許可を Amazon Rekognition Custom Labels に付与する必要がなくなりました。以前にアクセス許可を追加したことがある場合は、アクセス許可を削除する必要はありません。選択する場合は、プリンシパルのサービスが `rekognition.amazonaws.com` であるバケットからポリシーをすべて削除してください。例えば、次のようになります。

```
"Principal": {
    "Service": "rekognition.amazonaws.com"
}
```

詳細については、「[バケットポリシーの使用](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-policies.html)」を参照してください。

## アクセス許可の割り当て
<a name="su-sdk-assign-permissions"></a>

アクセスを提供するには、ユーザー、グループ、またはロールにアクセス許可を追加します。
+ 以下のユーザーとグループ AWS IAM アイデンティティセンター:

  アクセス許可セットを作成します。「*AWS IAM アイデンティティセンター ユーザーガイド*」の「[アクセス許可セットを作成する](https://docs.aws.amazon.com//singlesignon/latest/userguide/howtocreatepermissionset.html)」の手順に従ってください。
+ IAM 内で、ID プロバイダーによって管理されているユーザー:

  ID フェデレーションのロールを作成します。詳細については *IAM ユーザーガイド* の [サードパーティー ID プロバイダー (フェデレーション) 用のロールを作成する](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-idp.html) を参照してください。
+ IAM ユーザー:
  + ユーザーが担当できるロールを作成します。手順については *IAM ユーザーガイド* の [IAM ユーザーのロールの作成](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_roles_create_for-user.html) を参照してください。
  + (お奨めできない方法) ポリシーをユーザーに直接アタッチするか、ユーザーをユーザーグループに追加します。*IAM ユーザーガイド*の「[ユーザー (コンソール) へのアクセス許可の追加](https://docs.aws.amazon.com//IAM/latest/UserGuide/id_users_change-permissions.html#users_change_permissions-add-console)」の指示に従います。

# Amazon Rekognition Custom Labels オペレーションを呼び出す
<a name="su-sdk-list-projects"></a>

次のコードを実行して、Amazon Rekognition Custom Labels API を呼び出せることを確認します。このコードは、現在の AWS リージョンの AWS アカウント内のプロジェクトを一覧表示します。まだプロジェクトを作成していない場合、レスポンスは空ですが、`DescribeProjects` オペレーションを呼び出せることを確認できます。

一般的に、サンプル関数を呼び出すには、AWS SDK Rekognition クライアントとそのほかの必要なパラメータが必要です。AWS SDK クライアントはメイン関数で宣言されます。

コードが失敗する場合は、使用するユーザーに正しいアクセス許可があるかどうかを確認します。Amazon Rekognition Custom Labels として使用している AWS リージョンが、一部の AWS リージョンで利用できないことも確認してください。

**Amazon Rekognition Custom Labels オペレーションを呼び出すには**

1. まだインストールしていない場合は、 と AWS SDKs をインストール AWS CLI して設定します。詳細については、「[ステップ 4: AWS CLI と AWS SDKsを設定する](su-awscli-sdk.md)」を参照してください。

1. 次のサンプルコードを使用して、プロジェクトを表示します。

------
#### [ CLI ]

   `describe-projects` コマンドを使用して、アカウントのプロジェクトを一覧表示します。

   ```
   aws rekognition describe-projects \
   --profile custom-labels-access
   ```

------
#### [ Python ]

   ```
   # Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
   # SPDX-License-Identifier: Apache-2.0
   
   """
   This example shows how to describe your Amazon Rekognition Custom Labels projects.
   If you haven't previously created a project in the current AWS Region,
   the response is an empty list, but does confirm that you can call an
   Amazon Rekognition Custom Labels operation.
   """
   from botocore.exceptions import ClientError
   import boto3
   
   def describe_projects(rekognition_client):
       """
       Lists information about the projects that are in in your AWS account
       and in the current AWS Region.
   
       : param rekognition_client: A Boto3 Rekognition client.
       """
       try:
           response = rekognition_client.describe_projects()
           for project in response["ProjectDescriptions"]:
               print("Status: " + project["Status"])
               print("ARN: " + project["ProjectArn"])
               print()
           print("Done!")
       except ClientError as err:
           print(f"Couldn't describe projects. \n{err}")
           raise
   
   
   def main():
       """
       Entrypoint for script.
       """
   
       session = boto3.Session(profile_name='custom-labels-access')
       rekognition_client = session.client("rekognition")
   
       describe_projects(rekognition_client)
   
   
   if __name__ == "__main__":
       main()
   ```

------
#### [ Java V2 ]

   ```
   /*
      Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
      SPDX-License-Identifier: Apache-2.0
   */
   
   package com.example.rekognition;
   
   import java.util.ArrayList;
   import java.util.List;
   import java.util.logging.Level;
   import java.util.logging.Logger;
   
   import software.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
   import software.amazon.awssdk.regions.Region;
   import software.amazon.awssdk.services.rekognition.RekognitionClient;
   import software.amazon.awssdk.services.rekognition.model.DatasetMetadata;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsRequest;
   import software.amazon.awssdk.services.rekognition.model.DescribeProjectsResponse;
   import software.amazon.awssdk.services.rekognition.model.ProjectDescription;
   import software.amazon.awssdk.services.rekognition.model.RekognitionException;
   
   public class Hello {
   
       public static final Logger logger = Logger.getLogger(Hello.class.getName());
   
       public static void describeMyProjects(RekognitionClient rekClient) {
   
           DescribeProjectsRequest descProjects = null;
   
           // If a single project name is supplied, build projectNames argument
   
           List<String> projectNames = new ArrayList<String>();
   
   
           descProjects = DescribeProjectsRequest.builder().build();
   
           // Display useful information for each project.
   
           DescribeProjectsResponse resp = rekClient.describeProjects(descProjects);
   
           for (ProjectDescription projectDescription : resp.projectDescriptions()) {
   
               System.out.println("ARN: " + projectDescription.projectArn());
               System.out.println("Status: " + projectDescription.statusAsString());
               if (projectDescription.hasDatasets()) {
                   for (DatasetMetadata datasetDescription : projectDescription.datasets()) {
                       System.out.println("\tdataset Type: " + datasetDescription.datasetTypeAsString());
                       System.out.println("\tdataset ARN: " + datasetDescription.datasetArn());
                       System.out.println("\tdataset Status: " + datasetDescription.statusAsString());
                   }
               }
               System.out.println();
           }
   
       }
   
       public static void main(String[] args) {
   
           try {
   
               // Get the Rekognition client
               RekognitionClient rekClient = RekognitionClient.builder()
                   .credentialsProvider(ProfileCredentialsProvider.create("custom-labels-access"))
                   .region(Region.US_WEST_2)
                   .build();
               
               // Describe projects
   
               describeMyProjects(rekClient);
   
               rekClient.close();
   
           } catch (RekognitionException rekError) {
               logger.log(Level.SEVERE, "Rekognition client error: {0}", rekError.getMessage());
               System.exit(1);
           }
   
       }
   
   }
   ```

------

# ステップ 5: (オプション) トレーニングファイルを暗号化する
<a name="su-encrypt-bucket"></a>

以下のオプションのいずれかを選択して、コンソールバケットまたは外部の Amazon S3 バケットにある Amazon Rekognition Custom Labels のマニフェストファイルとイメージファイルを暗号化できます。
+ Amazon S3 キー (SSE-S3) を使用します。
+ を使用します AWS KMS key。
**注記**  
呼び出し元の [IAM プリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/intro-structure.html#intro-structure-principal%23intro-structure-principal)には、ファイルを復号化するアクセス許可が必要です。詳細については、「[で暗号化されたファイルの復号 AWS Key Management Service](#su-kms-encryption)」を参照してください。

Amazon S3 バケットの暗号化の詳細については、「[Amazon S3 バケットのデフォルトのサーバー側の暗号化動作の設定](https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-encryption.html)」を参照してください。

## で暗号化されたファイルの復号 AWS Key Management Service
<a name="su-kms-encryption"></a>

 AWS Key Management Service (KMS) を使用して Amazon Rekognition Custom Labels マニフェストファイルとイメージファイルを暗号化する場合は、Amazon Rekognition Custom Labels を呼び出す IAM プリンシパルを KMS キーのキーポリシーに追加します。これにより、Amazon Rekognition Custom Labels はトレーニングの前にマニフェストとイメージファイルを復号できます。詳細については、「[Amazon S3 バケットには、カスタム AWS KMS キーを使用したデフォルトの暗号化があります」を参照してください。ユーザーがバケットからダウンロードしたり、バケットにアップロードしたりできるようにする方法を教えてください。](https://aws.amazon.com/premiumsupport/knowledge-center/s3-bucket-access-default-encryption/)

IAM プリンシパルには、KMS キーに対する次のアクセス許可が必要です。
+ kms:GenerateDataKey
+ kms:Decrypt

詳細については、「[AWS Key Management Service (SSE-KMS) に保存された KMS キーを使用したサーバー側暗号化を使用したデータの保護](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingKMSEncryption.html)」を参照してください。

## コピーしたトレーニングイメージとテストイメージを暗号化する
<a name="w2aab8c21c11"></a>

モデルをトレーニングするために、Amazon Rekognition Custom Labels は出典トレーニング画像とテストイメージのコピーを作成します。デフォルトでは、コピーされたイメージは、AWS が所有および管理するキーで保管時に暗号化されます。独自の AWS KMS keyの使用を選択することもできます。独自の KMS キーを使用する場合は、KMS キーに対する次のアクセス許可が必要です。
+ kms:CreateGrant
+ kms:DescribeKey

コンソールでモデルをトレーニングする場合、または `CreateProjectVersion` オペレーションを呼び出す場合に KMS キーを必要に応じて指定できます。使用する KMS キーは、Amazon S3 バケット内のマニフェストファイルとイメージファイルの暗号化に使用する KMS キーと同一である必要はありません。詳細については、「[ステップ 5: (オプション) トレーニングファイルを暗号化する](#su-encrypt-bucket)」を参照してください。

詳細については、「[AWS Key Management Service の概念](https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys)」を参照してください。ソース画像には影響がありません。

モデルをトレーニングする方法については、「[Amazon Rekognition Custom Labels モデルをトレーニングする](training-model.md)」を参照してください。

# ステップ 6: (オプション) 以前のデータセットを新しいプロジェクトに関連付ける
<a name="su-associate-prior-dataset"></a>

Amazon Rekognition Custom Labels がプロジェクトでデータセットを管理するようになりました。以前に作成した (以前の) データセットは読み取り専用で、使用する前にプロジェクトに関連付ける必要があります。コンソールでプロジェクトの詳細ページを開くと、プロジェクトのモデルの最新バージョンをトレーニングしたデータセットがプロジェクトと自動的に関連付けられます。 AWS SDK を使用している場合、データセットとプロジェクトの自動関連付けは行われません。

関連付けられていない以前のデータセットは、モデルのトレーニングに使用されたことはありませんが、以前のバージョンのモデルのトレーニングに使用されました。以前のデータセットページには、関連するデータセットと関連付けられていないデータセットがすべて表示されます。

関連付けられていない以前のデータセットを使用するには、以前のデータセットページで新しいプロジェクトを作成します。このデータセットは、新しいプロジェクトのトレーニングデータセットになります。以前のデータセットには複数の関連付けがある場合があるため、既に関連付けられているデータセットのプロジェクトを作成することもできます。

**以前のデータセットを新しいプロジェクトに関連付けるには**

1. Amazon Rekognition コンソールを [https://console.aws.amazon.com/rekognition/](https://console.aws.amazon.com/rekognition/) で開きます。

1. 左側のペインで、**[カスタムラベルを使用]** を選択します。Amazon Rekognition Custom Labels のランディングページが表示されます。

1. 左のナビゲーションペインで、**[データセット]** を選択します。

1. データセットビューで、プロジェクトに関連付ける以前のデータセットを選択します。

1. **[データセットを使用してプロジェクトを作成]** を選択します。

1. **[プロジェクトを作成する]** ウィンドウの **[プロジェクト名]** に、新しいプロジェクトの名前を入力します。

1. **[プロジェクトを作成する]** を選択してプロジェクトを作成します。プロジェクトの作成までに時間がかかる場合があります。

1. プロジェクトを使用してください。詳細については、「[Amazon Rekognition Custom Labels について](understanding-custom-labels.md)」を参照してください。

## 以前のデータセットをテストデータセットとして使用する
<a name="su-prior-dataset-as-test-dataset"></a>

以前のデータセットを既存のプロジェクトのテストデータセットとして使用するには、まず以前のデータセットを新しいプロジェクトに関連付けます。次に、新しいプロジェクトのトレーニングデータセットを既存のプロジェクトのテストデータセットにコピーします。

**以前のデータセットをテストデータセットとして使用するには**

1. [ステップ 6: (オプション) 以前のデータセットを新しいプロジェクトに関連付ける](#su-associate-prior-dataset) で説明されている手順に従って、以前のデータセットを新しいプロジェクトに関連付けます。

1. 新しいプロジェクトからトレーニングデータセットをコピーして、既存のプロジェクトにテストデータセットを作成します。詳細については、「[既存のデータセットからのコンテンツのコピー](md-create-dataset-existing-dataset.md)」を参照してください。

1. [Amazon Rekognition Custom Labels プロジェクトの削除 (コンソール)](mp-delete-project.md#mp-delete-project-console) に記載されている手順に従って、新しいプロジェクトを削除します。

以前のデータセットのマニフェストファイルを使用してテストデータセットを作成することもできます。詳細については、「[マニフェストファイルの作成](md-create-manifest-file.md)」を参照してください。