

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

# Apache Ranger とのネイティブ統合のための IAM ロール
<a name="emr-ranger-iam"></a>

Amazon EMR と Apache Ranger の統合は、クラスターを起動する前に作成する必要がある次の 3 つの主要なロールに依存します。
+ Amazon EMR のカスタム Amazon EC2 インスタンスプロファイル
+ Apache Ranger エンジンの IAM ロール
+ 他の AWS サービスの IAM ロール

このセクションでは、これらのロールの概要と、各 IAM ロールに含める必要があるポリシーについて説明します。これらのロールの作成については、「[Amazon EMR と統合するように Ranger 管理サーバーを設定する](emr-ranger-admin.md)」を参照してください。

# Amazon EMR 用の EC2 インスタンスプロファイル
<a name="emr-ranger-iam-ec2"></a>

Amazon EMR は IAM サービスロールを使用して、ユーザーの代わりにクラスターのプロビジョニングと管理を行うためのアクションを実行します。EC2 インスタンスのサービスロール (Amazon EMR の EC2 インスタンスプロファイルとも呼ばれます) は、起動時にクラスター内のすべての EC2 インスタンスに割り当てられる特殊なサービスロールです。

Amazon S3 データおよび Apache Ranger およびその他の AWS サービスで保護された Hive メタストアとの EMR クラスターインタラクションのアクセス許可を定義するには、クラスターの起動`EMR_EC2_DefaultRole`時に の代わりに使用するカスタム EC2 インスタンスプロファイルを定義します。

詳細については、「[クラスター EC2 インスタンスのサービスロール (EC2 インスタンスプロファイル)](emr-iam-role-for-ec2.md)」および「[Amazon EMR で IAM ロールをカスタマイズする](emr-iam-roles-custom.md)」を参照してください。

Amazon EMR がセッションにタグを付け、TLS 証明書 AWS Secrets Manager を保存する にアクセスできるようにするには、デフォルトの EC2 インスタンスプロファイルに次のステートメントを追加する必要があります。

```
    {
      "Sid": "AllowAssumeOfRolesAndTagging",
      "Effect": "Allow",
      "Action": ["sts:TagSession", "sts:AssumeRole"],
      "Resource": [
        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_ENGINE-PLUGIN_DATA_ACCESS_ROLE_NAME>",
        "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<RANGER_USER_ACCESS_ROLE_NAME>"
      ]
    },
    {
        "Sid": "AllowSecretsRetrieval",
        "Effect": "Allow",
        "Action": "secretsmanager:GetSecretValue",
        "Resource": [
            "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<PLUGIN_TLS_SECRET_NAME>*",
            "arn:aws:secretsmanager:<REGION>:<AWS_ACCOUNT_ID>:secret:<ADMIN_RANGER_SERVER_TLS_SECRET_NAME>*"
        ]
    }
```

**注記**  
Secrets Manager アクセス許可については、シークレット名の末尾にあるワイルドカード (「\$1」) を忘れないでください。そうしないと、リクエストは失敗します。ワイルドカードは、シークレットバージョン用です。

**注記**  
 AWS Secrets Manager ポリシーの範囲を、プロビジョニングに必要な証明書のみに制限します。

# Apache Ranger の IAM ロール
<a name="emr-ranger-iam-ranger"></a>

このロールは、Apache Hive や Amazon EMR Record Server などの信頼できる実行エンジンが Amazon S3 データにアクセスするための認証情報を提供します。S3 SSE-KMS を使用している場合は、このロールだけを使用して、KMS キーを含む Amazon S3 データにアクセスします。

このロールは、次の例に示す最小ポリシーで作成する必要があります。

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

****  

```
{
  "Version":"2012-10-17",		 	 	 
  "Statement": [
    {
      "Sid": "CloudwatchLogsPermissions",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:logs:*:123456789012:log-group:CLOUDWATCH_LOG_GROUP_NAME_IN_SECURITY_CONFIGURATION:*"
      ]
    },
    {
      "Sid": "BucketPermissionsInS3Buckets",
      "Action": [
        "s3:CreateBucket",
        "s3:DeleteBucket",
        "s3:ListAllMyBuckets",
        "s3:ListBucket"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1",
        "arn:aws:s3:::amzn-s3-demo-bucket2"
      ]
    },
    {
      "Sid": "ObjectPermissionsInS3Objects",
      "Action": [
        "s3:GetObject",
        "s3:DeleteObject",
        "s3:PutObject"
      ],
      "Effect": "Allow",
      "Resource": [
        "arn:aws:s3:::amzn-s3-demo-bucket1/*",
        "arn:aws:s3:::amzn-s3-demo-bucket2/*"
      ]
    }
  ]
}
```

------

**重要**  
ログストリームへの書き込みアクセス許可を提供するには、CloudWatch ログリソースの末尾にアスタリスク「\$1」を含める必要があります。

**注記**  
EMRFS 整合性ビューまたは S3-SSE 暗号化を使用している場合は、実行エンジンがこれらのエンジンと対話できるように、DynamoDB テーブルおよび KMS キーへのアクセス許可を追加します。

Apache Ranger の IAM ロールは EC2 インスタンスプロファイルロールによって引き受けられます。次の例を使用して、Apache Ranger の IAM ロールが EC2 インスタンスプロファイルロールによって引き受けられるようにする信頼ポリシーを作成します。

```
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
```

# Amazon EMR 統合の他の AWS サービスの IAM ロール
<a name="emr-ranger-iam-other-AWS"></a>

このロールは、信頼された実行エンジンではないユーザーに、必要に応じて AWS サービスとやり取りするための認証情報を提供します。すべてのユーザーからアクセスできるようにするデータでない限り、この IAM ロールを使用して Amazon S3 データへのアクセスを許可しないでください。

このロールは EC2 インスタンスプロファイルロールによって引き受けられます。次の例を使用して、Apache Ranger の IAM ロールが EC2 インスタンスプロファイルロールによって引き受けられるようにする信頼ポリシーを作成します。

```
    {
      "Sid": "",
      "Effect": "Allow",
      "Principal": {
        "AWS": "arn:aws:iam::<AWS_ACCOUNT_ID>:role/<EC2 INSTANCE PROFILE ROLE NAME eg. EMR_EC2_DefaultRole>"
      },
      "Action": ["sts:AssumeRole", "sts:TagSession"]
    }
```

# Amazon EMR と Apache Ranger の統合のアクセス許可を検証する
<a name="emr-ranger-iam-validate"></a>

アクセス許可の検証の手順については、「[Apache Ranger のトラブルシューティング](emr-ranger-troubleshooting.md)」を参照してください。