

# データベース認証とリソースアクセスの手動設定
<a name="limitless-load.manual"></a>

データベース認証とリソースアクセスの手動設定プロセスには、以下のステップが含まれます。

1. [カスタマーマネージド AWS KMS keyの作成](#limitless-load.auth.create-kms)

1. [IAM ロールのアクセス許可ポリシーの追加](#limitless-load.auth.iam-policy)

1. [データベースシークレットの作成](#limitless-load.auth.secrets)

1. [IAM ロールの作成](#limitless-load.auth.iam-role)

1. [カスタマーマネージド AWS KMS keyの更新](#limitless-load.auth.update-kms)

このプロセスはオプションであり、[スクリプトを使用したデータベース認証とリソースアクセスの設定](limitless-load.script.md) と同じタスクを実行します。スクリプトを使用することをお勧めします。

## カスタマーマネージド AWS KMS keyの作成
<a name="limitless-load.auth.create-kms"></a>

「[Creating symmetric encryption keys](https://docs.aws.amazon.com/kms/latest/developerguide/create-keys.html#create-symmetric-cmk)」の手順に従って、カスタマーマネージド KMS キーを作成します。以下の要件を満たしている場合は、既存のキーを使用できます。

**カスタマーマネージド KMS キーを作成するには**

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

1. **[カスタマー管理型のキー]** ページに移動します。

1. **[Create key]** (キーの作成) を選択します。

1. **[キーの設定]** ページで、次の操作を行います。

   1. **[キータイプ]** として、**[対称]** を選択します。

   1. **[キーの使用]** で、**[暗号化および復号化]** を選択します。

   1. [**次へ**] を選択します。

1. **[ラベルを追加]** ページで、**limitless** などの**エイリアス**を入力し、**[次へ]** を選択します。

1. **[キーの管理アクセス許可を定義]** ページで、**[キーの管理者がこのキーを削除できるようにします]** チェックボックスがオンになっていることを確認し、**[次へ]** を選択します。

1. [**キー使用アクセス許可の定義**] ページで、[**次へ**] をクリックします。

1. [**レビュー**] ページで、[**完了**] を選択します。

   キーポリシーは後で更新します。

[IAM ロールのアクセス許可ポリシーの追加](#limitless-load.auth.iam-policy) で使用する KMS キーの Amazon リソースネーム (ARN) を記録します。

AWS CLI を使用してカスタマーマネージド KMS キーを作成する方法については、「[create-key](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-key.html)」と「[create-alias](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/kms/create-alias.html)」を参照してください。

## データベースシークレットの作成
<a name="limitless-load.auth.secrets"></a>

データロードユーティリティがソースデータベーステーブルと送信先データベーステーブルにアクセスできるようにするには、AWS Secrets Manager に 2 つのシークレットを作成します。1 つはソースデータベース用、もう 1 つは送信先データベース用です。これらのシークレットには、ソースデータベースと送信先データベースにアクセスするためのユーザー名とパスワードが保存されます。

「[Create an AWS Secrets Manager secret](https://docs.aws.amazon.com/secretsmanager/latest/userguide/create_secret.html)」の手順に従って、キーと値のペアシークレットを作成します。

**データベースシークレットを作成するには**

1. [https://console.aws.amazon.com/secretsmanager/](https://console.aws.amazon.com/secretsmanager/) から Secrets Manager コンソールを開きます。

1. **[Store a new secret]** (新しいシークレットを保存する) を選択します｡

1. **[シークレットのタイプを選択]** ページで以下を行います。

   1. **[シークレットのタイプ]** で、**[その他のシークレットのタイプ]** を選択します。

   1. **[キー/値のペア]** で、**[プレーンテキスト]** タブを選択します。

   1. 次の JSON コードを入力します。`{{sourcedbreader}}` と `{{sourcedbpassword}}` は「[ソースデータベース認証情報を作成する](limitless-load.utility.md#limitless-load.users.source)」で作成したソースデータベースユーザーの認証情報です。

      ```
      {
          "username":"{{sourcedbreader}}",
          "password":"{{sourcedbpassword}}"
      }
      ```

   1. **[暗号化キー]** で、[カスタマーマネージド AWS KMS keyの作成](#limitless-load.auth.create-kms) で作成した KMS キーを選択します (例: `limitless`)。

   1. [**次へ**] を選択します。

1. **[シークレットを設定]** ページで、**[シークレットの名前]** (**source\_DB\_secret** など) を入力し、**[次へ]** を選択します。

1. **[ローテーションを設定 - *オプション*]** ページで、**[次へ]** をクリックします。

1. **[Review]** (確認) ページで **[Store]** (保存) を選択します。

1. 送信先データベースシークレットでこの手順を繰り返します。

   1. 次の JSON コードを入力します。`{{destinationdbwriter}}` と `{{destinationdbpassword}}` は「[送信先データベースの認証情報を作成する](limitless-load.utility.md#limitless-load.users.destination)」で作成した送信先データベースユーザーの認証情報です。

      ```
      {
          "username":"{{destinationdbwriter}}",
          "password":"{{destinationdbpassword}}"
      }
      ```

   1. **[シークレットの名前]** (**destination\_DB\_secret** など) を入力します。

[IAM ロールのアクセス許可ポリシーの追加](#limitless-load.auth.iam-policy) で使用するシークレットの ARN を記録します。

## IAM ロールの作成
<a name="limitless-load.auth.iam-role"></a>

データロードには、AWS リソースへのアクセスを提供する必要があります。アクセスを提供するには、「[IAM ユーザーにアクセス許可を委任するロールを作成する](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-user.html)」の手順に従って `aurora-data-loader` IAM ロールを作成します。

**IAM ロールを作成するには**

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

1. **[ロール]** ページに移動します。

1. [**ロールの作成**] を選択してください。

1. **[信頼されたエンティティを選択]** ページで以下を行います。

   1. **[信頼されたエンティティタイプ]** で、**[カスタム信頼ポリシー]** を選択します。

   1. カスタム信頼ポリシーに次の JSON コードを入力します。

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

****  

      ```
      {
          "Version":"2012-10-17",		 	 	 
          "Statement": [
              {
                  "Effect": "Allow",
                  "Principal": {
                      "Service": [
                          "rds.amazonaws.com"
                      ]
                  },
                  "Action": "sts:AssumeRole"
              }
          ]
      }
      ```

------

   1. [**次へ**] を選択します。

1. **[アクセス許可を追加]** ページで **[次へ]** を選択してください。

1. **[名前、確認、および作成]** ページで、以下を行います。

   1. **[ロール名]** には、**aurora-data-loader** または任意の別の名前を入力します。

   1. **[タグを追加]** を選択して、以下のタグを入力します。
      + **キー**: **assumer**
      + **値**: **aurora\_limitless\_table\_data\_load**
**重要**  
Aurora PostgreSQL Limitless Database は、このタグを持つ IAM ロールのみを引き受けることができます。

   1. [**ロールの作成**] を選択してください。

## カスタマーマネージド AWS KMS keyの更新
<a name="limitless-load.auth.update-kms"></a>

「[キーポリシーを変更する](https://docs.aws.amazon.com/kms/latest/developerguide/key-policy-modifying.html)」の手順に従って、IAM ロール `aurora-data-loader` をデフォルトのキーポリシーに追加します。

**IAM ロールをキーポリシーに追加するには**

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

1. **[カスタマー管理型のキー]** ページに移動します。

1. 「[カスタマーマネージド AWS KMS keyの作成](#limitless-load.auth.create-kms)」で作成した KMS キー (`limitless` など) を選択します。

1. **[キーポリシー]** タブの **[キーユーザー]** で、**[追加]** を選択します。

1. **[キーユーザーの追加]** ウィンドウで、「[IAM ロールの作成](#limitless-load.auth.iam-role)」で作成した IAM ロールの名前 (**aurora-data-loader** など) を選択します。

1. **[Add]** (追加) を選択します。

## IAM ロールのアクセス許可ポリシーの追加
<a name="limitless-load.auth.iam-policy"></a>

作成した IAM ロールにアクセス許可ポリシーを追加する必要があります。これにより、Aurora PostgreSQL Limitless Database データロードユーティリティは、ネットワーク接続を構築し、ソースと送信先の DB 認証情報シークレットを取得するための関連 AWS リソースにアクセスできます。

詳細については、「[ロールの修正](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_manage_modify.html#roles-modify_gen-policy)」を参照してください。

**アクセス許可ポリシーを追加するには**

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

1. **[ロール]** ページに移動します。

1. 「[IAM ロールの作成](#limitless-load.auth.iam-role)」で作成した IAM ロール (**aurora-data-loader** など) を選択します。

1. **[許可]** タブの **[許可ポリシー]** で **[許可を追加]** を選択し、**インラインポリシーを作成**します。

1. **[アクセス許可を指定]** ページで、**[JSON]** エディタを選択します。

1. 次のテンプレートをコピーして JSON エディタに貼り付け、プレースホルダーをデータベースシークレットと KMS キーの ARN に置き換えます。

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "Ec2Permission",
               "Effect": "Allow",
               "Action": [
                   "ec2:DescribeNetworkInterfaces",
                   "ec2:CreateNetworkInterface",
                   "ec2:DeleteNetworkInterface",
                   "ec2:CreateNetworkInterfacePermission",
                   "ec2:DeleteNetworkInterfacePermission",
                   "ec2:DescribeNetworkInterfacePermissions",
                   "ec2:ModifyNetworkInterfaceAttribute",
                   "ec2:DescribeNetworkInterfaceAttribute",
                   "ec2:DescribeAvailabilityZones",
                   "ec2:DescribeRegions",
                   "ec2:DescribeVpcs",
                   "ec2:DescribeSubnets",
                   "ec2:DescribeSecurityGroups",
                   "ec2:DescribeNetworkAcls"
               ],
               "Resource": "*"
           },
           {
               "Sid": "SecretsManagerPermissions",
               "Effect": "Allow",
               "Action": [
                   "secretsmanager:GetSecretValue",
                   "secretsmanager:DescribeSecret"
               ],
               "Resource": [
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{source_DB_secret-ABC123}}",
                   "arn:aws:secretsmanager:us-east-1:{{123456789012}}:secret:{{destination_DB_secret-456DEF}}"
               ]
           },        {
               "Sid": "KmsPermissions",
               "Effect": "Allow",
               "Action": [
                   "kms:Decrypt",
                   "kms:DescribeKey",
                   "kms:GenerateDataKey"
               ],
               "Resource": "arn:aws:kms:us-east-1:{{123456789012}}:key/{{aa11bb22-####-####-####-fedcba123456}}"
           },
           {
               "Sid": "RdsPermissions",
               "Effect": "Allow",
               "Action": [
                   "rds:DescribeDBClusters",
                   "rds:DescribeDBInstances"
               ],
               "Resource": "*"
           }
       ]
   }
   ```

------

1. エラーを確認して修正します。

1. [**次へ**] を選択します。

1. **[確認して作成]** ページで、**[ポリシー名]** (**data\_loading\_policy** など) を入力し、**[ポリシーを作成]** を選択します。