Amazon EMR インスタンスロールに AWS Secrets Manager アクセス許可を追加する
Amazon EMR は IAM サービスロールを使用して、ユーザーの代わりにクラスターのプロビジョニングと管理を行うためのアクションを実行します。クラスター EC2 インスタンスのサービスロール (Amazon EMR の EC2 インスタンスプロファイルとも呼ばれます) は、Amazon EMR が起動時にクラスター内のすべての EC2 インスタンスに割り当てる特殊なタイプのサービスロールです。
EMR クラスターが Amazon S3 データやその他の AWS のサービスと対話するためのアクセス許可を定義するには、クラスターの起動時に、EMR_EC2_DefaultRole ではなくカスタム Amazon EC2 インスタンスプロファイルを定義します。詳細については、「クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)」および「Amazon EMR で IAM ロールをカスタマイズする」を参照してください。
Amazon EMR がセッションにタグを付けて、LDAP 証明書を保存している AWS Secrets Manager にアクセスできるようにするには、デフォルトの EC2 インスタンスプロファイルに次のステートメントを追加します。
{ "Sid": "AllowAssumeOfRolesAndTagging", "Effect": "Allow", "Action": ["sts:TagSession", "sts:AssumeRole"], "Resource": [ "arn:aws:iam::111122223333:role/LDAP_DATA_ACCESS_ROLE_NAME", "arn:aws:iam::111122223333:role/LDAP_USER_ACCESS_ROLE_NAME" ] }, { "Sid": "AllowSecretsRetrieval", "Effect": "Allow", "Action": "secretsmanager:GetSecretValue", "Resource": [ "arn:aws:secretsmanager:us-east-1:111122223333:secret:LDAP_SECRET_NAME*", "arn:aws:secretsmanager:us-east-1:111122223333:secret:ADMIN_LDAP_SECRET_NAME*" ] }
注記
Secrets Manager のアクセス許可を設定するときに、シークレット名の末尾にワイルドカード文字 * を付け忘れると、クラスターリクエストは失敗します。ワイルドカードは、シークレットバージョンを表します。
また、AWS Secrets Manager ポリシーの範囲を、クラスターがインスタンスをプロビジョニングするために必要な証明書のみに制限する必要があります。