AWS環境の設定

Keeperローテーション用にAWS環境を設定する方法

AWS環境の概要

AWS環境のリソースは、EC2インスタンスロールを使用するか、PAM構成のレコードに設定された所定のアクセスキーID/シークレットアクセスキーを使用してローテーションできます。

ロールポリシーは、対象AWSリソースへのアクセスを有効にするために適切に設定する必要があります。

以下は、AWS環境の階層構造です。

AWSローテーションの階層構造

EC2 IAMロールポリシー (推奨)

この方法を使用するには、AWSのEC2インスタンス上でKeeperゲートウェイを実行している必要があります。

AWS管理リソースの認証情報をEC2インスタンスからローテーションするには、以下の手順を実行します。

まず、適切なポリシー設定を持つロールを設定し、EC2インスタンスにアタッチします (静的なアクセスキーIDやシークレットアクセスキーを使用する代わりとなります)。

ローテーションの権限を付与するには、以下のJSONを使用してインラインロールポリシーを作成する必要があります。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "ec2:DescribeInstances",
                "rds:DescribeDBInstances",
                "ds:DescribeDirectories",
                "iam:ListUsers",
                "iam:ListAccessKeys",
                "iam:UpdateLoginProfile",
                "rds:ModifyDBInstance",
                "ds:ResetUserPassword",
                "ds:DescribeLDAPSSettings",
                "ds:DescribeDomainControllers"
            ],
            "Resource": "*"
        }
    ]
}

上記のJSONを編集して、ローテーションに使用されていないリソースを削除できます。たとえば、RDSリソースが使用されていない場合は、rds:DescribeDBInstancesrds:ModifyDBInstanceを削除できます。ただし、iam:SimulatePrincipalPolicyは必要です。

以下の手順で新しいロールを作成し、ポリシーを適用します。

  1. 上記で指定したJSONを使用してロールを作成するか、AWS管理コンソールにアクセスし、[IAM] > [Roles] (ロール) > [Create Role] (ロールの作成) をクリックします。[AWS Service] (AWSサービス) を選択し、[EC2 use case] (EC2ユースケース) を選択します。

  2. 上記のポリシーJSONをこのロールに添付します。

  1. EC2インスタンスビューで、[Actions] (アクション) > [Security] (セキュリティ) > [Modify IAM Role] (IAMロールを変更) に移動し、この新しいロールを選択します。

IAMユーザーを管理するための最小AWSポリシー

管理対象ユーザーのタイプ
IAMポリシー

ローテーションではローカルクレデンシャルを使用し、AWSのアクセス権限は特に必要ありません。

ローテーションではPAMデータベースのレコードに対し、AWS APIを使用し、以下が必要になります。 iam:GetUser iam:SimulatePrincipalPolicy rds:ModifyDBInstance rds:DescribeDBInstances

SQLを使用してPAMデータベースまたはPAMユーザーのレコードを管理する場合、AWSアクセス権限は必要ありません。

ローテーションではPAMディレクトリのレコードに対し、AWS APIを使用し、以下が必要になります。

iam:SimulatePrincipalPolicy ds:DescribeDirectories ds:ResetUserPassword ds:DescribeLDAPSSettings ds:DescribeDomainControllers

ローテーションではPAMユーザーのレコードに対し、AWS APIを使用し、以下が必要になります。

iam:SimulatePrincipalPolicy iam:UpdateLoginProfile iam:GetUser

IAMユーザーポリシー

EC2インスタンスのロールポリシーのご使用をお勧めします。または、PAM構成でAWSアクセスキーIDとシークレットアクセスキーを直接指定することもできます。IAM管理者アカウントは、AWSの対象リソースにアクセスするために適切なポリシー設定を付与して作成する必要があります。

インラインポリシーは、以下のJSONを使用してユーザーに対して作成できます。

{
    "Version":"2012-10-17",
    "Statement": [
        {
            "Sid":"VisualEditor0",
            "Effect":"Allow",
            "Action": [
                "iam:SimulatePrincipalPolicy",
                "ec2:DescribeInstances",
                "rds:DescribeDBInstances",
                "ds:DescribeDirectories",
                "iam:ListUsers",
                "iam:GetUser",
                "iam:ListAccessKeys",
                "iam:UpdateLoginProfile",
                "rds:ModifyDBInstance",
                "ds:ResetUserPassword",
                "ds:DescribeLDAPSSettings",
                "ds:DescribeDomainControllers"
            ],
            "Resource": "*"
        }
    ]
}

上記のJSONを編集して、ローテーションに使用されていないリソースを削除できます。たとえば、RDSリソースが使用されていない場合は、rds:DescribeDBInstancesrds:ModifyDBInstanceを削除できます。

ただし、iam:SimulatePrincipalPolicyは必要です。

アクセスキーを作成する手順は以下のとおりです。

  • 新しいIAMユーザーを作成するか、または既存のユーザーを選択します。

  • 上記で指定したインラインポリシーをそのユーザーにアタッチします。

  • [IAM user] (IAMユーザー) > [Security credentials] (セキュリティ認証情報) > [Create access key] (アクセスキーの作成) を開きます。

  • [Application running outside AWS] (AWS外で実行するアプリケーション) を選択します。

  • 指定したアクセスキーID/シークレットアクセスキーをPAM設定に保存します。

最終更新