AWS環境の設定

Keeper Rotation用にAWS環境を設定する方法

AWS環境の概要

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

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

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

EC2 IAMロールポリシー

AWSのEC2インスタンスでKeeper Gatewayを実行している場合は、EC2 IAMインスタンスのロールポリシーを使用するこの設定方法をお勧めします。

EC2インスタンスからAWSのマネージドリソースのクレデンシャルをローテーションするには、静的なアクセスキーID/シークレットアクセスキーを使用する代わりに、適切なポリシー設定が付与されたロールを設定してEC2インスタンスにアタッチできます。

基本的なロールポリシーを以下に示します。

{
    "Version":"2012-10-17",
    "Statement": [
        {
            "Effect":"Allow",
            "Action": [
                "sts:AssumeRole"
            ],
            "Principal": {
                "Service": [
                    "http://ec2.amazonaws.com "
                ]
            }
        }
    ]
}

ローテーション用に設定するには、以下の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": "*"
        }
    ]
}

AWSコンソールでこれを作成する手順は以下のとおりです。

  • 上記で指定したJSONを使用してロールを作成するか、IAM > Roles (ロール) > Create Role (ロールの作成) をクリックし、「AWS Service」 (AWS サービス)と「EC2 use case」 (EC2ユースケース) を選択します。

  • 上記のポリシーJSONをこのロールにアタッチします

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

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

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インスタンスのロールポリシーのご使用をお勧めします。または、AWSアクセスキーIDとシークレットアクセスキーをPAM設定で直接指定することもできます。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設定に保存します

最終更新