Red Hat Training

A Red Hat training course is available for OpenShift Container Platform

第20章 Amazon Web サービス (AWS) の設定

20.1. 概要

OpenShift Container Platform は、AWS ボリュームをアプリケーションデータの永続ストレージとして使用する など、AWS EC2 インフラストラクチャー にアクセスできるように設定できます。これを実行するには、AWS を設定した後に OpenShift Container Platform ホストで追加の設定を行う必要があります。

20.1.1. Amazon Web サービス (AWS) の認証の設定

パーミッション: AWS インスタンスでは、OpenShift Container Platform でロードバランサーおよびストレージを要求し、管理できるようにするために、アクセスおよびシークレットキーを使用する Programmatic Access (プログラムによるアクセス) を持つ IAM アカウントか、または作成時にインスタンスに割り当てられる IAM ロールのいずれかが必要になります。

IAM アカウントまたは IAM ロールには、完全なクラウドプロバイダー機能を利用できるようにするためのポリシーパーミッションが必要です。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": [
                "ec2:DescribeVolume*",
                "ec2:CreateVolume",
                "ec2:CreateTags",
                "ec2:DescribeInstances",
                "ec2:AttachVolume",
                "ec2:DetachVolume",
                "ec2:DeleteVolume",
                "ec2:DescribeSubnets",
                "ec2:CreateSecurityGroup",
                "ec2:DescribeSecurityGroups",
                "ec2:DeleteSecurityGroup",
                "ec2:DescribeRouteTables",
                "ec2:AuthorizeSecurityGroupIngress",
                "ec2:RevokeSecurityGroupIngress",
                "elasticloadbalancing:DescribeTags",
                "elasticloadbalancing:CreateLoadBalancerListeners",
                "elasticloadbalancing:ConfigureHealthCheck",
                "elasticloadbalancing:DeleteLoadBalancerListeners",
                "elasticloadbalancing:RegisterInstancesWithLoadBalancer",
                "elasticloadbalancing:DescribeLoadBalancers",
                "elasticloadbalancing:CreateLoadBalancer",
                "elasticloadbalancing:DeleteLoadBalancer",
                "elasticloadbalancing:ModifyLoadBalancerAttributes",
                "elasticloadbalancing:DescribeLoadBalancerAttributes"
            ],
            "Resource": "*",
            "Effect": "Allow",
            "Sid": "1"
        }
    ]
}
aws iam put-role-policy \
  --role-name openshift-role \
  --policy-name openshift-admin \
  --policy-document file: //openshift_iam_policy
aws iam put-user-policy \
  --user-name openshift-admin \
  --policy-name openshift-admin \
  --policy-document file: //openshift_iam_policy
注記

OpenShift ノードインスタンスは ec2:DescribeInstance パーミッションのみが必要ですが、インストーラーは単一の AWS アクセスキーおよびシークレットのみの定義を許可します。これは、IAM ロールを使用し、上記のパーミッションをマスターインスタンスに割り当てた後に ec2:DescribeInstance をノードに割り当てることでバイパスできます。

20.1.1.1. インストール時の OpenShift Container Platform クラウドプロバイダーの設定

手順

アクセスおよびシークレットキーのある IAM アカウントを使用して Amazon Web Services クラウドプロバイダーを設定するには、以下の値をインベントリーに追加します。

[OSEv3:vars]
openshift_cloudprovider_kind=aws
openshift_clusterid=openshift 1
openshift_cloudprovider_aws_access_key=AKIAJ6VLBLISADPBUA 2
openshift_cloudprovider_aws_secret_key=g/8PmDNYHVSQn0BQE+xtsHzbaZaGYjGNzhbdgwjH 3
1
OpenShift に使用されるすべてのリソース (インスタンス、ロードバランサー、vpc など) に割り当てられるタグ。
2
IAM アカウントによって使用される AWS アクセスキー。
3
IAM アカウントによって使用される AWS シークレットキー。

IAM ロールを使用して Amazon Web Services クラウドプロバイダーを設定するには、以下の値をインベントリーに追加します。

[source,yaml]
----
[OSEv3:vars]
openshift_cloudprovider_kind=aws
openshift_clusterid=openshift 1
----
<1> A tag assigned to all resources (instances, load balancers, vpc, etc) used for OpenShift.
NOTE: The IAM role takes the place of needing an access and secret key.

20.1.1.2. インストール後の OpenShift Container Platform クラウドプロバイダーの設定

Amazon Web Services クラウドプロバイダーの値がインストール時に提供されない場合でも、インストール後に設定を定義し、作成することができます。設定ファイルの設定手順に従い、マスターおよびノードを手動で設定します (OpenShift Container Platform マスターでの AWS の手動設定)。

重要
  • マスターホスト、ノードホスト、サブネットにはすべて、kubernetes.io/cluster/<clusterid>,Value=(owned|shared) のタグが必要です。
  • 1 つのセキュリティーグループ (ノードにリンクされていることが望ましい) に kubernetes.io/cluster/<clusterid>,Value=(owned|shared) タグが必要です。

    • すべてのセキュリティーグループに kubernetes.io/cluster/<clusterid>,Value=(owned|shared) のタグを付けないでください。 その場合、Elastic Load Balancing (ELB) がロードバランサーを作成できなくなります。