

# IAM ロールと Amazon Aurora MySQL DB クラスターの関連付け
<a name="AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster"></a>

Amazon Aurora DB クラスター内のデータベースユーザーから他の AWS のサービスにアクセスすることを許可するには、[Amazon Aurora が AWS のサービスにアクセスすることを許可する IAM ロールの作成](AuroraMySQL.Integrating.Authorizing.IAM.CreateRole.md) で作成した IAM ロールを、その DB クラスターに関連付けます。サービスを直接関連付けることで、AWS に新しい IAM ロールを作成させることもできます。

**注記**  
IAM ロールを Aurora Serverless v1 DB クラスターに関連付けることはできません。詳細については、「[Amazon Aurora Serverless v1 の使用](aurora-serverless.md)」を参照してください。  
IAM ロールを Aurora Serverless v2 DB クラスターに関連付けることはでます。

IAM ロールを DB クラスターに関連付けるには、2 つのことを行います。

1. RDS コンソール、[add-role-to-db-cluster](https://docs.aws.amazon.com/cli/latest/reference/rds/add-role-to-db-cluster.html) AWS CLI コマンド、または [AddRoleToDBCluster](https://docs.aws.amazon.com/AmazonRDS/latest/APIReference/API_AddRoleToDBCluster.html) RDS API オペレーションを使用して、DB クラスターの関連付けられたロールのリストにロールを追加します。

   Aurora DB クラスターごとに最大 5 つの IAM ロールを追加できます。

1. 関連する AWS のサービスのクラスターレベルのパラメータを、関連付けられた IAM ロールの ARN に設定します。

   次の表では、AWS の他のサービスにアクセスするために使用する IAM ロールのクラスターレベルのパラメータ名について説明します。    
<a name="aurora_cluster_params_iam_roles"></a>[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.html)

ユーザーに代わって Amazon RDS クラスターが他の AWS のサービスと通信することを許可する IAM ロールを関連付けるには、以下のステップを実行します。

## コンソール
<a name="AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.CON"></a>

**コンソールを使用して IAM ロールを Aurora DB クラスターに関連付けるには**

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

1. [**データベース**] をクリックします。

1. IAM ロールを関連付ける Aurora DB クラスターの名前を選択して、詳細を表示します。

1. **[Connectivity & security**] (接続とセキュリティ) タブの **[Manage IAM roles]** (IAM ロールの管理) セクションで、次のいずれかを実行します。
   + **このクラスターに追加する IAM ロールを選択してください** (デフォルト)
   + **このクラスターに接続するサービスを選択してください**  
![\[IAM ロールを DB クラスターに関連付ける\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/AuroraAssociateIAMRole-02.png)

1. 既存の IAM ロールを使用するには、メニューからロールを選択し、**[Add role]** (ロールの追加) を選択します。

   ロールの追加に成功すると、そのステータスは `Pending`、`Available` の順に表示されます。

1. サービスに直接接続するには、以下を実行します。

   1. **[Select a service to connect to this cluster]** (このクラスターに接続するサービスを選択する) を選択します。

   1. メニューからサービスを選択し、**[Connect service]** (サービスに接続する) を選択します。

   1. **[Connect cluster to *Service Name*]** (クラスターをサービス名に接続する) で、サービスへの接続に使用する Amazon リソースネーム (ARN) を入力し、**[Connect service]** (サービスに接続する) を選択します。

   AWS は、サービスに接続するための新しい IAM ロールを作成します。そのステータスは `Pending`、次に `Available` と表示されます。

1. (オプション) DB クラスターへの IAM ロールの関連付けを中止し、関連するアクセス許可を削除するには、ロールの **[Delete]** (削除) を選択します。

**関連する IAM ロールにクラスターレベルのパラメータを設定するには**

1. RDS コンソールで、ナビゲーションペインの [**パラメータグループ**] を選択します。

1. カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを選択して使用できます。DB クラスターのデフォルトのパラメータグループを使用している場合は、以下のステップに従って、DB クラスターの新しいパラメータグループを作成します。

   1. [**パラメータグループの作成**]を選択します。

   1. **[パラメータグループファミリー]** で、Aurora MySQL 8.0 互換の DB クラスターには `aurora-mysql8.0` を選択し、Aurora MySQL 5.7 互換の DB クラスターには `aurora-mysql5.7` を選択します｡

   1. [**タイプ**] で、[**DB クラスターのパラメータグループ**] を選択します。

   1. [**グループ名**] に、DB クラスターの新しいパラメータグループの名前を入力します。

   1. [**説明**] に、DB クラスターの新しいパラメータグループの説明を入力します。  
![\[DB クラスターのパラメータグループを作成する\]](http://docs.aws.amazon.com/ja_jp/AmazonRDS/latest/AuroraUserGuide/images/AuroraAssociateIAMRole-03.png)

   1. [**作成**] を選択します。

1. [**パラメータグループ**] ページで、DB クラスターパラメータグループを選択して [**パラメータグループアクション**]、[**編集**] の順に選択します。

1. 適切なクラスターレベルの[パラメータ](#aurora_cluster_params_iam_roles)を、関連する IAM ロールの ARN 値に設定します。

   例えば、`aws_default_s3_role` パラメータを`arn:aws:iam::123456789012:role/AllowS3Access` に設定します。

1. [**変更の保存**] をクリックします。

1. DB クラスターの DB クラスターパラメータグループを変更するには、次のステップをすべて行います。

   1. [**データベース**] を選択後、Aurora DB クラスターを選択します。

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

   1. [**データベースの選択肢**] までスクロールし、[**DB クラスターのパラメータグループ**] を、DB クラスターのパラメータグループに設定します。

   1. [**続行**] を選択します。

   1. 変更を確認し、[**すぐに適用**] を選択します。

   1. [**クラスタークラスターの変更**] を選択します。

   1. [**データベース**] を選択後、DB クラスターのプライマリインスタンスを選択します。

   1. [**アクション**] で、[**再起動**] を選択します。

      インスタンスが再起動すると、IAM ロールが DB クラスターに関連付けられます。

      クラスターのパラメータグループの詳細については、「[Aurora MySQL 設定パラメータ](AuroraMySQL.Reference.ParameterGroups.md)」を参照してください。

## CLI
<a name="AuroraMySQL.Integrating.Authorizing.IAM.AddRoleToDBCluster.CLI"></a>

**AWS CLI を使用して IAM ロールを DB クラスターに関連付けるには**

1. 以下に示すように、`add-role-to-db-cluster` から AWS CLI コマンドを呼び出して、IAM ロールの ARN を DB クラスターに追加します。

   ```
   PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws:iam::123456789012:role/AllowAuroraS3Role
   PROMPT> aws rds add-role-to-db-cluster --db-cluster-identifier my-cluster --role-arn arn:aws:iam::123456789012:role/AllowAuroraLambdaRole
   ```

1. DB クラスターのデフォルトのパラメータグループを使用している場合は、DB クラスターの新しいパラメータグループを作成します。カスタム DB パラメータグループをすでに使用している場合は、DB クラスターの新しいパラメータグループを作成する代わりに、そのグループを使用できます。

   DB クラスターの新しいパラメータグループを作成するには、以下に示すように、`create-db-cluster-parameter-group` から AWS CLI コマンドを呼び出します。

   ```
   PROMPT> aws rds create-db-cluster-parameter-group  --db-cluster-parameter-group-name AllowAWSAccess \
        --db-parameter-group-family aurora5.7 --description "Allow access to Amazon S3 and AWS Lambda"
   ```

   Aurora MySQL 5.7 互換 DB クラスターの場合は、`aurora-mysql5.7` に `--db-parameter-group-family` を指定します。Aurora MySQL 8.0 互換 DB クラスターの場合は、`--db-parameter-group-family` に `aurora-mysql8.0` を指定します。

1. 以下に示すように、適切なクラスターレベルの単一あるいは複数のパラメータと関連する IAM ロールの ARN 値を DB クラスターのパラメータグループに設定します。

   ```
   PROMPT> aws rds modify-db-cluster-parameter-group --db-cluster-parameter-group-name AllowAWSAccess \
       --parameters "ParameterName=aws_default_s3_role,ParameterValue=arn:aws:iam::123456789012:role/AllowAuroraS3Role,method=pending-reboot" \
       --parameters "ParameterName=aws_default_lambda_role,ParameterValue=arn:aws:iam::123456789012:role/AllowAuroraLambdaRole,method=pending-reboot"
   ```

1. 以下に示すように、DB クラスターの新しいパラメータグループを使うように DB クラスターを変更し、クラスターを再起動します。

   ```
   PROMPT> aws rds modify-db-cluster --db-cluster-identifier my-cluster --db-cluster-parameter-group-name AllowAWSAccess
   PROMPT> aws rds reboot-db-instance --db-instance-identifier my-cluster-primary
   ```

   インスタンスが再起動すると、IAM ロールが DB クラスターに関連付けられています。

   クラスターのパラメータグループの詳細については、「[Aurora MySQL 設定パラメータ](AuroraMySQL.Reference.ParameterGroups.md)」を参照してください。