

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

# 一般/カスタム認可要件
<a name="concepts-general-authorization"></a>

一般的な認可により、デバイスへのアクセスが可能になり、個々のユーザー認証情報を必要とせずに、認証情報を使用して複数のデバイスを制御できます。ユーザーレベルの認可を提供する OAuth 2.0 とは異なり、一般認可では、 に保存されている事前共有キー、トークン、またはその他の認可メカニズムを使用します AWS Secrets Manager。

一般認可を使用すると、C2C コネクタは、API キー、ベアラートークン、サードパーティープラットフォームが提供するカスタム認可スキームなど、OAuth 2.0 以外の認可メカニズムをサポートできます。このアプローチは、デバイスが個々のエンドユーザーではなくプログラムまたは組織レベルで管理されるシナリオで特に役立ちます。

## C2C コネクタが一般認可にシークレットを使用する方法
<a name="general-auth-secrets-manager"></a>

AWS Secrets Manager は、API キーやトークンなどの機密情報を保護するシークレットストレージサービスです。シークレットは AWS Key Management Service キーを使用して暗号化されます。詳細については、「[AWS Secrets Manager ユーザーガイド](https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html)」を参照してください。

一般的な認可では、認可認証情報を Secrets Manager に保存し、これらのシークレットにアクセスするためのアクセス許可を C2C コネクタに付与します。マネージド統合がコネクタを呼び出すと、Secrets Manager の ARN とバージョン ID が提供されます。コネクタはシークレット値を取得し、それを使用してサードパーティープラットフォームで認証します。

このアプローチにより、マネージド統合が長期的な認証情報を直接処理することがなくなります。コネクタは認証情報管理とトークン生成を完全に制御し、サードパーティープラットフォームでサポートされている認可メカニズムにソリューションを拡張できるようにします。

**重要**  
機密認証情報やトークンはログに記録しないことをお勧めします。ただし、ログに保存されている場合は、CloudWatch Logs データ保護ポリシーを使用してログ内のトークンをマスクすることをお勧めします。詳細については、「[Help protect sensitive log data with masking](https://docs.aws.amazon.com/AmazonCloudWatch/latest/logs/mask-sensitive-log-data.html)」を参照してください。

## 一般認可用のシークレットを作成する方法
<a name="general-auth-create-secret"></a>

一般認可用のシークレットを作成するには、 AWS Secrets Manager 「 ユーザーガイド」の[「 AWS Secrets Manager シークレットの作成](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)」の手順に従います。

シークレット値を読み取るには、C2C コネクタのカスタマーマネージド AWS KMS キーを使用してシークレットを作成する必要があります。詳細については、「 AWS Secrets Manager ユーザーガイド[」の「 AWS KMS キーのアクセス許可](https://docs.aws.amazon.com/secretsmanager/latest/userguide/security-encryption.html#security-encryption-authz)」を参照してください。

JSON 構造を使用して、認可認証情報をシークレットに保存します。正確な形式は、サードパーティープラットフォームの承認要件によって異なります。一般的な例としては次のようなものがあります。
+ API キー: `{"apiKey": "your-api-key-value"}`
+ ベアラートークン: `{"token": "your-bearer-token"}`
+ ユーザー名とパスワード: `{"username": "your-username", "password": "your-password"}`
+ Machine-to-machine OAuth 認証情報: `{"client_id": "your-client-id", "client_secret": "your-client-secret", "audience": "your-audience"}`

また、次のセクションで説明する IAM ポリシーを設定して、シークレットを取得するためのアクセス許可を C2C コネクタに付与する必要があります。

## シークレットを取得するためのアクセスを C2C コネクタに許可する
<a name="general-auth-grant-access"></a>

マネージド統合が Secrets Manager からシークレット値を取得できるようにするには、シークレットの作成時にシークレットのリソースポリシーに次のアクセス許可を含めます。

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "AWS": "{{c2c-connector-account-id}}"
      },
      "Action": "secretsmanager:GetSecretValue",
      "Resource": "*",
      "Condition": {
        "StringEquals": {
          "aws:SourceArn": "arn:aws:iotmanagedintegrations:{{region}}:{{account-id}}:account-association/{{account-association-id}}"
        }
      }
    }
  ]
}
```

このポリシーは、C2C コネクタに代わってシークレット値を取得するアクセス許可をマネージド統合に付与します。条件キーは、特定のアカウントの関連付けから発信されたリクエストのみがシークレットにアクセスできるようにすることで、混乱した代理問題を防ぐのに役立ちます。