AWSアカウントを接続する

1つ以上のAWSアカウントをOkta Privileged Accessに接続して、資格分析と高リスクAWSリソースの検出を行うことができます。

Okta Privileged Accessは、Oktaが管理するサービスアカウント(外部IDと呼びます)を使ってAWSアカウントの問い合わせを行います。サービスアカウントは、接続している各クラウドアカウントに固有であり、Okta Privileged AccessがAWSアカウントにアクセスして情報を取得するために必要です。このようなアカウントには、AWS IAMロールを介して付与される最小限の読み取り権限が必要です。IAMロールの詳細については、AWSのドキュメントを参照してください。

資格分析が正しく機能するには、AWS管理アカウントIDとAWS IAMロールが必要です。

AWSアカウントをOkta Privileged Accessに接続するには、IAMロールを作成し、必要な権限とポリシーをそのロールに構成し、それらのアカウントをOkta Privileged Accessに接続します。

  1. AWS管理アカウントにIAMポリシーを作成します。
  2. IAMロールを作成し、ポリシーを追加します。ロールの作成では、Okta AWSアカウントIDと外部IDが必要になります。
  3. Okta Privileged AccessにAWS IAM接続を作成し、AWS IAMロールのARNを検出に使用します。

AWS IAMロールを作成し、構成する

  1. 新しいブラウザーウィンドウでAmazon Web Services管理コンソールにアクセスし、IAMコンソールを開きます。
  2. Okta Privileged AccessがAWS組織に接続してアカウント、ユーザー、グループを検出できるように、管理アカウントにポリシーを作成します。この手順の目的上、このポリシーをOktaPA_CIEM_Policiesと呼ぶことにします。このポリシーには、次の権限を含める必要があります。
    こちらをクリックすると権限が表示されます。

    コピー
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "VisualEditor0",
    "Effect": "Allow",
    "Action": [
    "iam:GetPolicyVersion",
    "sso-directory:ListGroupsForUser",
    "identitystore:ListGroupMemberships",
    "sso:ListTagsForResource",
    "organizations:ListRoots",
    "sso:ListCustomerManagedPolicyReferencesInPermissionSet",
    "organizations:ListDelegatedServicesForAccount",
    "organizations:DescribeAccount",
    "sso:DescribeRegisteredRegions",
    "organizations:ListChildren",
    "sso-directory:SearchGroups",
    "sso:ListPermissionSetProvisioningStatus",
    "organizations:DescribeOrganization",
    "sso:SearchGroups",
    "sso:ListInstances",
    "sso-directory:DescribeUser",
    "sso:DescribeAccountAssignmentDeletionStatus",
    "sso:ListAccountAssignmentDeletionStatus",
    "iam:ListPolicies",
    "ds:DescribeTrusts",
    "sso:DescribeAccountAssignmentCreationStatus",
    "identitystore:ListUsers",
    "organizations:ListAccountsForParent",
    "sso:ListAccountAssignments",
    "organizations:ListHandshakesForAccount",
    "sso:DescribeDirectories",
    "sso:GetInlinePolicyForPermissionSet",
    "sso:ListManagedPoliciesInPermissionSet",
    "sso-directory:DescribeDirectory",
    "sso:DescribePermissionSetProvisioningStatus",
    "organizations:ListOrganizationalUnitsForParent",
    "sso:GetTrust",
    "sso-directory:DescribeGroup",
    "identitystore:DescribeUser",
    "sso:DescribePermissionsPolicies",
    "identitystore-auth:BatchGetSession",
    "sso:DescribeInstanceAccessControlAttributeConfiguration",
    "account:ListRegions",
    "sso-directory:ListMembersInGroup",
    "sso:ListProfiles",
    "sso:SearchUsers",
    "sso:GetPermissionSet",
    "sso-directory:DescribeGroups",
    "organizations:ListCreateAccountStatus",
    "sso-directory:DescribeUserByUniqueAttribute",
    "identitystore:DescribeGroupMembership",
    "sso-directory:SearchUsers",
    "identitystore:ListGroups",
    "sso:DescribePermissionSet",
    "sso:GetProfile",
    "sso-directory:ListExternalIdPCertificates",
    "sso-directory:GetUserPoolInfo",
    "organizations:ListPoliciesForTarget",
    "sso:ListPermissionSets",
    "sso:ListPermissionSetsProvisionedToAccount",
    "organizations:ListTargetsForPolicy",
    "organizations:ListTagsForResource",
    "sso:GetPermissionsPolicy",
    "identitystore-auth:ListSessions",
    "sso-directory:DescribeProvisioningTenant",
    "sso:GetSsoConfiguration",
    "sso:GetPermissionsBoundaryForPermissionSet",
    "organizations:ListAWSServiceAccessForOrganization",
    "sso:ListAccountAssignmentCreationStatus",
    "organizations:ListPolicies",
    "sso-directory:DescribeUsers",
    "identitystore:ListGroupMembershipsForMember",
    "organizations:ListHandshakesForOrganization",
    "organizations:ListDelegatedAdministrators",
    "organizations:ListAccounts",
    "sso:ListAccountsForProvisionedPermissionSet",
    "iam:ListPolicyVersions",
    "sso-directory:ListGroupsForMember",
    "identitystore:DescribeGroup",
    "organizations:ListParents",
    "ds:DescribeDirectories",
    "sso-directory:IsMemberInGroup",
    "sso:GetSSOStatus",
    "sso-directory:ListProvisioningTenants"
    ],
    "Resource": "*"
    }
    ]
    }

  3. リソース検出のための権限が含まれる別のポリシーをAWS管理アカウントに作成します。このポリシーをOktaPA_CIEM_ResourceDiscovery_Policyと呼ぶことにします。このポリシーには、次の権限を含める必要があります。
    こちらをクリックすると権限が表示されます。

    コピー
    {
    "Version": "2012-10-17",
    "Statement": [
    {
    "Sid": "VisualEditor0",
    "Effect": "Allow",
    "Action": [
    "rds:DescribeDBInstances",
    "iam:GetPolicyVersion",
    "iam:ListPolicyVersions"
    ],
    "Resource": "*"
    }
    ]
    }

  4. AWS組織のメンバーアカウントごとに、別のOktaPA_CIEM_ResourceDiscovery_Policyを作成します。前の手順と同じ権限を付与し、すべてのメンバーアカウントでリソースを検出できるようにします。

    このポリシーと適切なロールがメンバーアカウント内に作成されていない場合、Okta Privileged Accessはそのアカウント内の資格とリソースを検出できません。

  5. Okta Privileged Accessアカウントにサインインして、AWS接続を作成します。以後のステップで必要になるOkta AWSアカウントIDと外部IDを書き留めておきます。「AWSアカウントをOkta Privileged Accessに接続する」を参照してください。
  6. 作成したポリシーにリンクさせるIAMロールをAWS管理アカウントに作成します。
    1. IAMコンソールで[ロール]ページに移動し、[Create role(ロールを作成)]をクリックします。
    2. [信頼できるエンティティを選択]ページで[AWS Account(AWSアカウント)] [Another AWS Account(別のAWSアカウント)]を選択します。
    3. 事前にコピーしておいたOkta AWSアカウントIDを貼り付けます。
    4. [Require external ID(外部IDを必須にする)]オプションを選択し、事前にコピーしておいたOkta AWSアカウント外部IDを貼り付けます。
    5. 作成した2つの権限ポリシーを選択し、ロールと関連付けます。
    6. ロールに意味のある名前を付けます(OktaPA_CIEM_Roleなど)。
    7. ロールを作成したら、ロールのARNをコピーします。
    8. Okta Privileged Accessダッシュボードに移動して接続の作成画面に貼り付け、接続をテストします。「AWSアカウントをOkta Privileged Accessに接続する」を参照してください。
  7. AWS管理アカウント内に別のロールを作成します。
    1. IAMコンソールで[ロール]ページに移動し、[Create role(ロールを作成)]をクリックします。
    2. [信頼できるエンティティを選択]ページで[Custom trust policy(カスタム信頼ポリシー)]を選択します。
    3. ポリシーエディターで[Add a principal(プリンシパルを追加)]を選択し、[Principal type(プリンシパルタイプ)][IAM Roles(IAMロール)]を選択します。
    4. 事前にコピーしておいたOktaPA_CIEM_RoleのARNを[ARN]フィールドに貼り付けます。
    5. [Add a condition(条件を追加)]をクリックします。条件キーとしてsts:ExternalIdを選択します。
    6. [Operator(演算子)]StringEqualsを選択し、事前にコピーしておいたOkta AWSアカウント外部IDを値フィールドに貼り付けます。
    7. 事前に作成したリソース検出ポリシー(この例ではOktaPA_CIEM_ResourceDiscovery_Policyというポリシー)を追加します。
    8. [Next(次へ)]をクリックします。
    9. このロールの正確な名前を指定します:OktaPAMResourcesReadOnlyRole

      ロール名は、正確な名前と一致する必要があります。別の名前を使った場合、検出は機能しません。

    10. ロールを作成したら、以後のステップで必要になるこのロールのARNをコピーします。
  8. 組織のすべてのダウンストリームメンバーアカウントで前述のステップを繰り返し、このOktaPAMResourcesReadOnlyRoleを作成します。このロールを作成するアカウントごとに、このロールのARNをコピーします。

    このポリシーと適切なロールがメンバーアカウント内に作成されていない場合、Okta Privileged Accessはそのアカウント内の資格とリソースを検出できません。

  9. 管理アカウントとOktaのAWSアカウントがメンバーアカウントとやり取りできるようにするための別のポリシーを管理アカウント内に作成します。このポリシーをOktaPA_CIEM_Assume_Roleと呼ぶことにします。
    1. このポリシーのサービスとしてSTSを選択します。
    2. [Allowed(許可)]されるアクションでWriteAssumeRoleを選択します。
    3. [Resources(リソース)][Specific(特定)]を選択し、[Add ARNs(ARNを追加)]リンクをクリックしてアクセスを制限します。
    4. 表示されるダイアログで[Text(テキスト)]を選択し、上で作成した個々のAWSメンバーアカウントロールごとにコピーしておいたOktaPAMResourcesReadOnlyRoleのARN値を貼り付けます。
    5. [Add ARNs(ARNを追加)]をクリックします
    6. ポリシーにOktaPA_CIEM_Assume_Roleという名前を付けます。
  10. 最後に、先ほど管理アカウント内に作成したロールにポリシーを接続します。ここでは、管理アカウントはOktaPA_CIEM_Roleです。

AWSアカウントをOkta Privileged Accessに接続する

  1. 自分のAWSアカウントIDを確認します。
    1. Amazon Web Services管理コンソールに移動します。
    2. ページ上部のプロファイル名の横にあるドロップダウンメニューを選択し、[My Account(マイアカウント)]をクリックします。
    3. [Account Settings(アカウント設定)]の下のアカウントID番号を書き留めておきます。
  2. 新しいブラウザーを開いて、Okta Privileged Accessアカウントにサインインします。

  3. AWS IAM接続を作成します。AWS IAMロールの構成と、この接続の作成を同時に行うため、このウィンドウは開いたままにします。
    1. Okta Privileged Accessダッシュボードで[Resource Administration(リソース管理)][Cloud Connections(クラウド接続)]に移動します。
    2. [Create connection(接続を作成)][AWS IAM connection(AWS IAM接続)]をクリックします。
    3. クラウドアカウントの設定を構成します。
      設定アクション

      接続名

      接続名を入力します。

      AWS管理アカウントID

      事前に書き留めておいたメインAWS管理アカウントのIDを入力します。

      AWSロール

      AWS IAMロールのARNを入力します。ARNの取得については、「AWS IAMロールを作成し、構成する」を参照してください。

      [Okta AWS Account ID(Okta AWSアカウントID)]フィールドと[External ID(外部ID)]フィールドは自動的に入力されます。

      AWS IAMロールの作成時に必要となるため、外部IDの値を書き留めておきます。これは、Oktaが管理するAWSサービスアカウントに関連しており、自分のAWSアカウントIDとは異なります。外部IDの使用について詳しくは、AWSのドキュメントを参照してください。

    4. [Test(テスト)]をクリックし、接続に成功したことを確認します。
    5. [Save(保存)]をクリックします。

次の手順

資格分析