

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# 에 대한 액세스 제어 마이그레이션 AWS Billing
<a name="migrate-granularaccess-whatis"></a>

**참고**  
다음 AWS Identity and Access Management (IAM) 작업은 2023년 7월에 표준 지원이 종료되었습니다.  
`aws-portal` 네임스페이스
`purchase-orders:ViewPurchaseOrders`
`purchase-orders:ModifyPurchaseOrders`
를 사용하는 경우 [대량 정책 마이그레이션 스크립트](migrate-iam-permissions.md) 또는 대량 정책 마이그레이션기를 사용하여 지급인 계정에서 정책을 업데이트할 AWS Organizations수 있습니다. 또한 [기존 작업-세분화 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md)를 사용하여 추가해야 하는 IAM 작업을 확인할 수 있습니다.  
가 있거나 AWS 계정 2023년 3월 6일 오전 11시(PDT) 이후에 AWS Organizations 생성된의 일부인 경우 세분화된 작업이 조직에 이미 적용됩니다.

세분화된 액세스 제어를 사용하여 조직의 개인에게 AWS 결제 및 비용 관리 서비스에 대한 액세스 권한을 제공할 수 있습니다. 예를 들어, 과금 정보 및 비용 관리 콘솔에 대한 액세스 권한을 제공하지 않고 Cost Explorer에 대한 액세스 권한을 제공할 수 있습니다.

세분화된 액세스 제어를 사용하려면 `aws-portal`아래에서 새 IAM 작업으로 정책을 마이그레이션해야 합니다.

권한 정책 또는 서비스 제어 정책(SCP)의 다음과 같은 IAM 작업은 이 마이그레이션을 통해 업데이트해야 합니다.
+ `aws-portal:ViewAccount`
+ `aws-portal:ViewBilling`
+ `aws-portal:ViewPaymentMethods`
+ `aws-portal:ViewUsage`
+ `aws-portal:ModifyAccount`
+ `aws-portal:ModifyBilling`
+ `aws-portal:ModifyPaymentMethods`
+ `purchase-orders:ViewPurchaseOrders`
+ `purchase-orders:ModifyPurchaseOrders`

**Affected policies**(영향을 받는 정책) 도구를 사용하여 영향을 받는 IAM 정책을 식별하는 방법을 알아보려면 [영향을 받는 정책 도구를 사용하는 방법](migrate-security-iam-tool.md)섹션을 참조하세요.

**참고**  
 AWS Cost Explorer, AWS 비용 및 사용 보고서, AWS 예산에 대한 API 액세스는 영향을 받지 않습니다.  
[Billing and Cost Management 콘솔에 대한 액세스 권한 활성화](control-access-billing.md#ControllingAccessWebsite-Activate)는 변경되지 않습니다.

**Topics**
+ [액세스 권한 관리하기](#migrate-control-access-billing)
+ [콘솔을 사용하여 정책 대량 마이그레이션](migrate-granularaccess-console.md)
+ [영향을 받는 정책 도구를 사용하는 방법](migrate-security-iam-tool.md)
+ [세분화된 IAM 작업을 사용하도록 스크립트를 사용하여 정책을 대량으로 마이그레이션](migrate-iam-permissions.md)
+ [세분화된 IAM 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md)

## 액세스 권한 관리하기
<a name="migrate-control-access-billing"></a>

AWS Billing 는 AWS Identity and Access Management (IAM) 서비스와 통합되어 조직의 누가 [Billing and Cost Management 콘솔](https://console.aws.amazon.com/billing/)의 특정 페이지에 액세스할 수 있는지 제어할 수 있습니다. 여기에는 결제, 청구, 크레딧, 프리 티어, 결제 기본 설정, 통합 청구, 세금 설정 및 계정 페이지와 같은 기능이 포함됩니다.

과금 정보 및 비용 관리 콘솔을 세부적으로 제어하려면 다음과 같은 IAM 권한을 사용합니다.

세분화된 액세스 권한을 제공하려면 `aws-portal` 정책을 `account`, `billing`, `payments`, `freetier`, `invoicing`, `tax`, 및 `consolidatedbilling`으로 바꿉니다.

또한 `purchase-orders:ViewPurchaseOrders` 및 `purchase-orders:ModifyPurchaseOrders`을 아래의 `purchase-orders`, `account` 및 `payments` 아래의 세분화된 작업으로 바꾸세요.

### 세분화된 AWS Billing 작업 사용
<a name="migrate-user-permissions"></a>

이 표에는 청구 정보에 대한 IAM 사용자 및 역할 액세스를 허용하거나 거부할 수 있는 권한이 요약되어 있습니다. 이러한 권한을 사용하는 정책의 예는 [AWS 결제 정책 예제](billing-example-policies.md)단원을 참조하세요.

 AWS Cost Management 콘솔에 대한 작업 목록은 *AWS Cost Management 사용 설명서*의 [AWS Cost Management 작업 정책을](https://docs.aws.amazon.com/cost-management/latest/userguide/billing-permissions-ref.html#user-permissions) 참조하세요.

[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/awsaccountbilling/latest/aboutv2/migrate-granularaccess-whatis.html)

# 콘솔을 사용하여 정책 대량 마이그레이션
<a name="migrate-granularaccess-console"></a>

**참고**  
다음 AWS Identity and Access Management (IAM) 작업은 2023년 7월에 표준 지원이 종료되었습니다.  
`aws-portal` 네임스페이스
`purchase-orders:ViewPurchaseOrders`
`purchase-orders:ModifyPurchaseOrders`
를 사용하는 경우 [대량 정책 마이그레이션 스크립트](migrate-iam-permissions.md) 또는 대량 정책 마이그레이션기를 사용하여 지급인 계정에서 정책을 업데이트할 AWS Organizations수 있습니다. 또한 [기존 작업-세분화 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md)를 사용하여 추가해야 하는 IAM 작업을 확인할 수 있습니다.  
가 있거나 AWS 계정 2023년 3월 6일 오전 11시(PDT) 이후에 AWS Organizations 생성된의 일부인 경우 세분화된 작업이 조직에 이미 적용됩니다.

이 섹션에서는 [AWS 결제 및 비용 관리 콘솔](https://console.aws.amazon.com/billing/)을 사용하여 조직 계정 또는 표준 계정의 레거시 정책을 대량으로 세분화된 작업으로 마이그레이션할 수 있는 방법을 설명합니다. 다음 두 가지 방법으로 콘솔을 사용하여 레거시 정책 마이그레이션을 완료할 수 있습니다.

**AWS 권장 마이그레이션 프로세스 사용**  
레거시 작업을 AWS에서 매핑한 세분화된 작업으로 마이그레이션하는 간소화된 단일 작업 프로세스입니다. 자세한 내용은 [권장 조치를 사용한 레거시 정책 대량 마이그레이션](migrate-console-streamlined.md) 단원을 참조하십시오.

**사용자 지정 마이그레이션 프로세스 사용**  
이 프로세스를 통해 대량 마이그레이션 AWS 전에에서 권장하는 작업을 검토 및 변경하고 조직의 어떤 계정을 마이그레이션할지 사용자 지정할 수 있습니다. 자세한 내용은 [레거시 정책을 대량 마이그레이션하는 작업 사용자 지정](migrate-console-customized.md) 단원을 참조하십시오.

## 콘솔을 사용한 대량 마이그레이션을 위한 사전 조건
<a name="migrate-granularaccess-console-prereq"></a>

두 마이그레이션 옵션 모두 콘솔에서 동의해야 AWS 가 할당한 레거시 IAM 작업에 세분화된 작업을 추천할 수 있습니다. 이렇게 하려면 정책 업데이트를 계속하려면 다음 IAM 작업을 사용하여 AWS 계정에 IAM 보안 주체로 로그인해야 합니다. [https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html) 

------
#### [ Management account ]

```
// Required to view page
"ce:GetConsoleActionSetEnforced",
"aws-portal:GetConsoleActionSetEnforced",
"purchase-orders:GetConsoleActionSetEnforced",
"ce:UpdateConsoleActionSetEnforced",
"aws-portal:UpdateConsoleActionSetEnforced",
"purchase-orders:UpdateConsoleActionSetEnforced",
"iam:GetAccountAuthorizationDetails",
"s3:CreateBucket",
"s3:DeleteObject",
"s3:ListAllMyBuckets",
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:PutBucketAcl",
"s3:PutEncryptionConfiguration",
"s3:PutBucketVersioning",
"s3:PutBucketPublicAccessBlock",
"lambda:GetFunction",
"lambda:DeleteFunction",
"lambda:CreateFunction",
"lambda:InvokeFunction",
"lambda:RemovePermission",
"scheduler:GetSchedule", 
"scheduler:DeleteSchedule",
"scheduler:CreateSchedule",
"cloudformation:ActivateOrganizationsAccess",
"cloudformation:CreateStackSet",
"cloudformation:CreateStackInstances",
"cloudformation:DescribeStackSet",
"cloudformation:DescribeStackSetOperation",
"cloudformation:ListStackSets",
"cloudformation:DeleteStackSet",
"cloudformation:DeleteStackInstances",
"cloudformation:ListStacks",
"cloudformation:ListStackInstances",
"cloudformation:ListStackSetOperations",
"cloudformation:CreateStack",
"cloudformation:UpdateStackInstances",
"cloudformation:UpdateStackSet",
"cloudformation:DescribeStacks",
"ec2:DescribeRegions",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:GetUserPolicy",
"iam:GetGroupPolicy",
"iam:GetRole",
"iam:GetRolePolicy",
"iam:CreatePolicyVersion",
"iam:DeletePolicyVersion",
"iam:ListAttachedRolePolicies",
"iam:ListPolicyVersions",
"iam:PutUserPolicy",
"iam:PutGroupPolicy",
"iam:PutRolePolicy",
"iam:SetDefaultPolicyVersion",
"iam:GenerateServiceLastAccessedDetails",
"iam:GetServiceLastAccessedDetails",
"iam:GenerateOrganizationsAccessReport",
"iam:GetOrganizationsAccessReport",
"organizations:ListAccounts",
"organizations:ListPolicies",
"organizations:DescribePolicy",
"organizations:UpdatePolicy",
"organizations:DescribeOrganization",
"organizations:ListAccountsForParent",
"organizations:ListRoots",
"sts:AssumeRole",
"sso:ListInstances",
"sso:ListPermissionSets",
"sso:GetInlinePolicyForPermissionSet",
"sso:DescribePermissionSet",
"sso:PutInlinePolicyToPermissionSet",
"sso:ProvisionPermissionSet",
"sso:DescribePermissionSetProvisioningStatus",
"notifications:ListNotificationHubs" // Added to ensure Notifications API does not return 403
```

------
#### [ Member account or standard account ]

```
// Required to view page
"ce:GetConsoleActionSetEnforced",
"aws-portal:GetConsoleActionSetEnforced",
"purchase-orders:GetConsoleActionSetEnforced",
"ce:UpdateConsoleActionSetEnforced", // Not needed for member account
"aws-portal:UpdateConsoleActionSetEnforced", // Not needed for member account
"purchase-orders:UpdateConsoleActionSetEnforced", // Not needed for member account
"iam:GetAccountAuthorizationDetails",
"ec2:DescribeRegions",
"s3:CreateBucket",
"s3:DeleteObject",
"s3:ListAllMyBuckets",
"s3:GetObject",
"s3:PutObject",
"s3:ListBucket",
"s3:PutBucketAcl", 
"s3:PutEncryptionConfiguration",
"s3:PutBucketVersioning",
"s3:PutBucketPublicAccessBlock",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:GetUserPolicy",
"iam:GetGroupPolicy",
"iam:GetRolePolicy",
"iam:GetRole",
"iam:CreatePolicyVersion",
"iam:DeletePolicyVersion",
"iam:ListAttachedRolePolicies",
"iam:ListPolicyVersions",
"iam:PutUserPolicy",
"iam:PutGroupPolicy",
"iam:PutRolePolicy",
"iam:SetDefaultPolicyVersion",
"iam:GenerateServiceLastAccessedDetails",
"iam:GetServiceLastAccessedDetails",
"notifications:ListNotificationHubs" // Added to ensure Notifications API does not return 403
```

------

**Topics**
+ [콘솔을 사용한 대량 마이그레이션을 위한 사전 조건](#migrate-granularaccess-console-prereq)
+ [권장 조치를 사용한 레거시 정책 대량 마이그레이션](migrate-console-streamlined.md)
+ [레거시 정책을 대량 마이그레이션하는 작업 사용자 지정](migrate-console-customized.md)
+ [대량 마이그레이션 정책 변경 사항 롤백](migrate-console-rollback.md)
+ [마이그레이션 확인](#migrate-console-complete)

# 권장 조치를 사용한 레거시 정책 대량 마이그레이션
<a name="migrate-console-streamlined"></a>

 AWS에서 매핑한 세분화된 작업을 사용하여 모든 레거시 정책을 마이그레이션할 수 있습니다. 의 경우 AWS Organizations이는 모든 계정의 모든 레거시 정책에 적용됩니다. 마이그레이션 프로세스를 완료하면 세분화된 작업이 적용됩니다. 전체 조직을 커밋하기 전에 테스트 계정을 사용하여 대량 마이그레이션 프로세스를 테스트하는 옵션이 있습니다. 자세한 내용은 다음 섹션을 참조하세요.

**에서 매핑된 세분화된 작업을 사용하여 모든 정책을 마이그레이션하려면 AWS**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **확인 및 마이그레이션**을 선택합니다.

1. 마이그레이션이 완료될 때까지 **마이그레이션 진행 중** 페이지가 유지됩니다. 진행 상황은 상태 표시줄을 참조하세요.

1. **마이그레이션 진행 중** 섹션이 **마이그레이션 성공**으로 업데이트되면 **새 IAM 작업 관리** 페이지로 리디렉션됩니다.

## 대량 마이그레이션 테스트
<a name="migrate-console-streamlined-test"></a>

전체 조직을 마이그레이션하기 전에 테스트 계정을 사용하여 레거시 정책에서 AWS 권장 세분화된 작업으로의 대량 마이그레이션을 테스트할 수 있습니다. 테스트 계정에서 마이그레이션 프로세스를 완료하면 세분화된 작업이 테스트 계정에 적용됩니다.

**대량 마이그레이션을 위해 테스트 계정을 사용하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **사용자 지정**을 선택합니다.

1. 계정 **마이그레이션 테이블에 계정** 및 정책이 로드되면 계정 목록에서 하나 이상의 테스트 AWS 계정을 선택합니다.

1. (선택 사항) 레거시 정책과 AWS 권장 세분화된 작업 간의 매핑을 변경하려면 **기본 매핑 보기를** 선택합니다. 매핑을 변경하고 **저장**을 선택합니다.

1. **확인 및 마이그레이션**을 선택합니다.

1. 마이그레이션이 완료될 때까지 콘솔 페이지가 유지됩니다.

# 레거시 정책을 대량 마이그레이션하는 작업 사용자 지정
<a name="migrate-console-customized"></a>

모든 계정에 AWS 권장 작업을 사용하는 대신 다양한 방법으로 대량 마이그레이션을 사용자 지정할 수 있습니다. 마이그레이션하기 전에 레거시 정책에 필요한 변경 사항을 검토하고, 일회성으로 마이그레이션할 조직의 특정 계정을 선택하고, 매핑된 세분화된 작업을 업데이트하여 액세스 범위를 변경할 수 있는 옵션이 있습니다.

**대량 마이그레이션 전에 영향을 받는 정책을 검토하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **사용자 지정**을 선택합니다.

1. **계정 마이그레이션** 표에 계정 및 정책이 로드되면 **영향을 받는 IAM 정책 수** 열에서 번호를 선택하여 영향을 받는 정책을 확인합니다. 또한 해당 정책이 과금 정보 및 비용 관리 콘솔에 액세스하는 데 마지막으로 사용된 때를 확인할 수 있습니다.

1. 정책 이름을 선택하여 IAM 콘솔에서 열어 정의를 보고 정책을 수동으로 업데이트합니다.
**참고**  
이렇게 하면 정책이 다른 멤버 계정에서 가져온 정책인 경우 현재 계정에서 로그아웃될 수 있습니다.
현재 계정에서 대량 마이그레이션이 진행 중인 경우 해당 IAM 페이지로 리디렉션되지 않습니다.

1. (선택 사항) **기본 매핑 보기**를 선택하여 레거시 정책을 확인하면 AWS에서 매핑된 세분화된 정책을 이해할 수 있습니다.

**조직에서 마이그레이션할 계정 그룹을 선택하여 마이그레이션하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **사용자 지정**을 선택합니다.

1. **계정 마이그레이션** 표에 계정 및 정책이 로드되면 마이그레이션할 하나 이상의 계정을 선택합니다.

1. **확인 및 마이그레이션**을 선택합니다.

1. 마이그레이션이 완료될 때까지 콘솔 페이지가 유지됩니다.

**매핑된 세분화된 작업을 업데이트하여 액세스 범위를 변경하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **사용자 지정**을 선택합니다.

1. **기본 매핑 보기**를 선택합니다.

1. **편집**을 선택합니다.

1. 액세스를 제어하려는 과금 정보 및 비용 관리 서비스에 대한 IAM 작업을 추가하거나 제거합니다. 세분화된 작업과 이 작업이 제어하는 액세스에 대한 자세한 내용은 [세분화된 IAM 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md) 섹션을 참조하세요.

1. **변경 사항 저장**을 선택합니다.

업데이트된 매핑은 로그인한 계정의 향후 모든 마이그레이션에 사용됩니다. 이 매핑은 언제든지 변경할 수 있습니다.

# 대량 마이그레이션 정책 변경 사항 롤백
<a name="migrate-console-rollback"></a>

대량 마이그레이션 도구에 제공된 단계를 사용하면, 대량 마이그레이션 프로세스 중에 수행한 모든 정책 변경 사항을 안전하게 롤백할 수 있습니다. 롤백 기능은 계정 수준에서 작동합니다. 모든 계정 또는 마이그레이션된 계정의 특정 그룹에 대한 정책 업데이트를 롤백할 수 있습니다. 그러나 한 계정의 특정 정책에 대한 변경 사항은 롤백할 수 없습니다.

**대량 마이그레이션 변경 사항을 롤백하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **변경 사항 롤백** 탭을 선택합니다.

1. 롤백할 계정을 선택합니다. **롤백 상태** 열에 계정이 `Migrated`로 표시되어야 합니다.

1. **변경 사항 롤백** 버튼을 선택합니다.

1. 롤백이 완료될 때까지 콘솔 페이지가 유지됩니다.

## 마이그레이션 확인
<a name="migrate-console-complete"></a>

마이그레이션 도구를 사용하여 여전히 마이그레이션해야 하는 AWS Organizations 계정이 있는지 확인할 수 있습니다.

**모든 계정이 마이그레이션되었는지 확인하려면**

1. [AWS Management Console](https://console.aws.amazon.com/)에 로그인합니다.

1. 페이지 상단에 있는 검색 창에 **Bulk Policy Migrator**를 입력합니다.

1. **새 IAM 작업 관리** 페이지에서 **계정 마이그레이션** 탭을 선택합니다.

표에 남은 계정이 표시되지 않으면 모든 계정이 성공적으로 마이그레이션된 것입니다.

# 영향을 받는 정책 도구를 사용하는 방법
<a name="migrate-security-iam-tool"></a>

**참고**  
다음 AWS Identity and Access Management (IAM) 작업은 2023년 7월에 표준 지원이 종료되었습니다.  
`aws-portal` 네임스페이스
`purchase-orders:ViewPurchaseOrders`
`purchase-orders:ModifyPurchaseOrders`
를 사용하는 경우 [대량 정책 마이그레이션 스크립트](migrate-iam-permissions.md) 또는 대량 정책 마이그레이션기를 사용하여 지급인 계정에서 정책을 업데이트할 AWS Organizations수 있습니다. 또한 [기존 작업-세분화 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md)를 사용하여 추가해야 하는 IAM 작업을 확인할 수 있습니다.  
가 있거나 AWS 계정 2023년 3월 6일 오전 11시(PDT) 이후에 AWS Organizations 생성된의 일부인 경우 세분화된 작업이 조직에 이미 적용됩니다.

빌링 콘솔의 **영향을 받는 정책** 도구를 사용하여 IAM 정책(SCP 제외)을 식별하고 이 마이그레이션의 영향을 받는 IAM 작업을 참조할 수 있습니다. **영향을 받는 정책** 도구를 사용하여 다음 작업을 수행하세요.
+ IAM 정책을 식별하고 이 마이그레이션의 영향을 받는 IAM 작업을 참조
+ 업데이트된 정책을 클립보드에 복사
+ IAM 정책 편집기에서 영향을 받는 정책 열기
+ 계정의 업데이트된 정책 저장
+ 세분화된 권한을 켜고 이전 작업 비활성화

이 도구는 로그인한 AWS 계정의 경계 내에서 작동하며 다른 AWS Organizations 계정에 대한 정보는 공개되지 않습니다.

**영향을 받는 정책 도구를 사용하려면 다음과 같이 하세요.**

1. 에 로그인 AWS Management Console 하고 [https://console.aws.amazon.com/costmanagement/](https://console.aws.amazon.com/costmanagement/) AWS 결제 및 비용 관리 콘솔을 엽니다.

1. **영향을 받는 정책** 도구에 액세스하려면 URL([https://console.aws.amazon.com/poliden/home?region=us-east-1#/](https://console.aws.amazon.com/poliden/home?region=us-east-1#/))을 브라우저에 붙여 넣으세요.
**참고**  
이 페이지를 보려면 `iam:GetAccountAuthorizationDetails` 권한이 있어야 합니다.

1. 영향을 받는 IAM 정책이 나열된 테이블을 검토합니다. **Deprecated IAM actions**(사용되지 않는 IAM 작업) 열을 사용하여 정책에서 언급된 특정 IAM 작업을 검토합니다.

1. **업데이트된 정책 복사** 열에서 **복사**를 선택하여 업데이트된 정책을 클립보드에 복사합니다. 업데이트된 정책에는 기존 정책과 여기에 추가된 세분화된 권장 조치가 별도의 `Sid`블록으로 포함되어 있습니다. 이 블록의 정책 끝에 접두사 `AffectedPoliciesMigrator`가 붙습니다.

1. **IAM 콘솔의 정책 편집** 열에서 **편집**을 선택하여 IAM 정책 편집기로 이동합니다. 기존 정책의 JSON이 표시됩니다.

1. 기존 정책 전체를 4단계에서 복사한 업데이트된 정책으로 교체합니다. 필요에 따라 다른 내용을 변경할 수 있습니다.

1. **다음**과 **변경 사항 저장**을 차례로 선택합니다.

1. 영향을 모든 정책에 대해 3\$17단계를 반복합니다.

1. 정책을 업데이트한 후 **영향을 받는 정책** 도구를 새로 고침하여 영향을 받는 정책이 목록에 없는지 확인합니다. **새로운 IAM 작업 발견** 열에는 모든 정책이 **예**로 표시되어야 하며 **복사** 및 **편집** 버튼이 비활성화됩니다. 영향을 받는 정책이 업데이트되었습니다.

**계정에 대해 세분화된 작업을 활성화하려면 다음과 같이 하세요.**

정책을 업데이트한 후 이 절차에 따라 계정에 대한 세분화된 작업을 활성화합니다.

조직의 관리 계정(지급인) 또는 개별 계정만 **새 IAM 작업 관리** 섹션을 사용할 수 있습니다. 개별 계정에서 자체적으로 새 작업을 활성화할 수 있습니다. 관리 계정은 전체 조직 또는 일부 구성원 계정에 대해 새 작업을 활성화할 수 있습니다. 관리 계정인 경우 모든 구성원 계정의 영향을 받는 정책을 업데이트하고 조직에 대한 새 작업을 활성화합니다. 자세한 내용은 AWS 블로그 게시물의 [새 세분화된 작업 또는 기존 IAM 작업 간에 계정을 전환하는 방법](https://aws.amazon.com/blogs/aws-cloud-financial-management/changes-to-aws-billing-cost-management-and-account-consoles-permissions/#How-to-toggle-accounts-between-new-fine-grained-actions-or-existing-IAM-Actions) 섹션을 참조하세요.
**참고**  
이를 실행하려면 다음 권한이 있어야 합니다.  
`aws-portal:GetConsoleActionSetEnforced`
`aws-portal:UpdateConsoleActionSetEnforced`
`ce:GetConsoleActionSetEnforced`
`ce:UpdateConsoleActionSetEnforced`
`purchase-orders:GetConsoleActionSetEnforced`
`purchase-orders:UpdateConsoleActionSetEnforced`

**새 IAM 작업 관리** 섹션이 보이지 않는다면 계정에서 이미 세분화된 IAM 작업을 활성화한 것입니다.

1. **새 IAM 작업 관리**에서 **현재 작업 세트 적용** 설정은 **기존** 상태가 됩니다.

   **새 작업 활성화 (세분화)**를 선택한 다음 **변경 사항 적용**을 선택합니다.

1. 대화 상자에서 **Yes(예)**를 선택합니다. **현재 작업 세트 적용** 상태가 **세분화됨**으로 변경됩니다. 즉, 새 작업이 사용자의 AWS 계정 또는 조직에 적용됩니다.

1. (선택 사항) 그런 다음 기존 정책을 업데이트하여 이전 작업을 모두 제거할 수 있습니다.

**Example 예: IAM 정책 이전 및 이후**  
다음 IAM 정책에는 이전 `aws-portal:ViewPaymentMethods`작업이 있습니다.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aws-portal:ViewPaymentMethods"
            ],
            "Resource": "*"
        }
    ]
}
```
업데이트된 정책을 복사하면 다음 예시에서는 세분화된 작업이 포함된 새 `Sid`블록을 생성합니다.  

```
{
    "Version": "2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "aws-portal:ViewPaymentMethods"
            ],
            "Resource": "*"
        },
        {
            "Sid": "AffectedPoliciesMigrator0",
            "Effect": "Allow",
            "Action": [
                "account:GetAccountInformation",
                "invoicing:GetInvoicePDF",
                "payments:GetPaymentInstrument",
                "payments:GetPaymentStatus",
                "payments:ListPaymentPreferences"
            ],
            "Resource": "*"
        }
    ]
}
```

## 관련 리소스
<a name="related-resources-affected-policies"></a>

자세한 내용은 *IAM 사용자 설명서*에서 [Sid](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html)를 참조하세요.

세분화된 새 작업에 대한 자세한 내용은 [세분화된 IAM 작업 매핑](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/migrate-granularaccess-iam-mapping-reference.html) 및 [세분화된 결제 작업 사용](https://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/migrate-granularaccess-whatis.html#migrate-user-permissions)을 참조하세요.

# 세분화된 IAM 작업을 사용하도록 스크립트를 사용하여 정책을 대량으로 마이그레이션
<a name="migrate-iam-permissions"></a>

**참고**  
다음 AWS Identity and Access Management (IAM) 작업은 2023년 7월에 표준 지원이 종료되었습니다.  
`aws-portal` 네임스페이스
`purchase-orders:ViewPurchaseOrders`
`purchase-orders:ModifyPurchaseOrders`
를 사용하는 경우 [대량 정책 마이그레이션 스크립트](#migrate-iam-permissions) 또는 대량 정책 마이그레이션기를 사용하여 지급인 계정에서 정책을 업데이트할 AWS Organizations수 있습니다. 또한 [기존 작업-세분화 작업 매핑 참조](migrate-granularaccess-iam-mapping-reference.md)를 사용하여 추가해야 하는 IAM 작업을 확인할 수 있습니다.  
가 있거나 AWS 계정 2023년 3월 6일 오전 11시(PDT) 이후에 AWS Organizations 생성된의 일부인 경우 세분화된 작업이 조직에 이미 적용됩니다.

세분화된 작업이라는 새 작업을 사용하도록 IAM 정책을 마이그레이션하려면 [AWS  샘플](https://github.com/aws-samples/bulk-policy-migrator-scripts-for-account-cost-billing-consoles) 웹 사이트에서 스크립트를 사용할 수 있습니다.

해당 조직의 지급인 계정에서 제공되는 이러한 스크립트를 실행하여 이전 IAM 작업을 사용하는 조직에서 다음과 같은 영향을 받는 정책을 식별하세요.
+ 고객 관리형 IAM 정책
+ 역할, 그룹 및 사용자 IAM 인라인 정책
+ 서비스 제어 정책(SCP)(지급인 계정에만 적용)
+ 권한 세트

스크립트는 정책에 사용된 기존 작업에 대응되는 새로운 작업에 대한 제안을 생성합니다. 그런 다음 제안 사항을 검토하고 스크립트를 사용하여 조직에 있는 영향을 받는 모든 정책에 새로운 작업을 추가합니다. 관리형 정책 또는 AWS 관리형 SCPs(예: AWS Control Tower 및 AWS Organizations SCPs 업데이트할 AWS 필요가 없습니다.

이러한 스크립트를 사용하여 다음을 수행할 수 있습니다.
+ 정책 업데이트를 간소화하여 지급인 계정에서 영향을 받는 정책을 관리할 수 있습니다.
+ 정책을 업데이트하기 위해 필요한 시간을 단축합니다. 각 멤버 계정에 로그인하여 정책을 수동으로 업데이트할 필요가 없습니다.
+ 서로 다른 멤버 계정의 동일한 정책을 함께 그룹으로 묶습니다. 그리고 나면 업데이트를 하나씩 검토하는 대신 모든 동일한 정책 전반에서 같은 업데이트를 검토하고 적용할 수 있습니다.
+ 가 2023년 7월 6일에 이전 IAM 작업을 AWS 사용 중지한 후에도 사용자 액세스가 영향을 받지 않는지 확인합니다.

정책 및 서비스 제어 정책(SCP)에 대한 자세한 내용은 다음 주제를 참조하세요.
+ *IAM 사용 설명서*의 [IAM 정책 관리](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage.html)
+ *AWS Organizations 사용 설명서*의 [서비스 제어 정책(SCP)](https://docs.aws.amazon.com/organizations/latest/userguide/orgs_manage_policies_scps.html)
+ IAM Identity Center 사용 설명서의 [사용자 지정 권한](https://docs.aws.amazon.com/singlesignon/latest/userguide/permissionsetcustom.html)**

## 개요
<a name="overview-bulk-migrate-policies"></a>

이 주제에 따라 다음 단계를 완료하세요.

**Topics**
+ [개요](#overview-bulk-migrate-policies)
+ [사전 조건](#prerequisites-running-the-scripts)
+ [1단계: 환경 설정](#set-up-your-environment-and-download-the-scripts)
+ [2단계: CloudFormation StackSet 생성](#create-the-cloudformation-stack)
+ [3단계: 영향을 받는 정책 파악](#identify-the-affected-policies)
+ [4단계: 제안된 변경 내용 검토](#review-the-affected-policies)
+ [5단계: 영향을 받는 정책 업데이트](#update-the-affected-policies)
+ [6단계: 변경 내용 되돌리기(선택 사항)](#revert-changes)
+ [IAM 정책 예시](#examples-of-similar-policies)

## 사전 조건
<a name="prerequisites-running-the-scripts"></a>

시작하기 전에 반드시 다음을 준비해야 합니다.
+ [Python 3](https://www.python.org/downloads/) 다운로드 및 설치
+ 지급인 계정에 로그인하여 다음의 IAM 권한을 가진 IAM 보안 주체가 있는지 확인하세요.

  ```
  "iam:GetAccountAuthorizationDetails",
  "iam:GetPolicy",
  "iam:GetPolicyVersion",
  "iam:GetUserPolicy",
  "iam:GetGroupPolicy",
  "iam:GetRole",
  "iam:GetRolePolicy",
  "iam:CreatePolicyVersion",
  "iam:DeletePolicyVersion",
  "iam:ListAttachedRolePolicies",
  "iam:ListPolicyVersions",
  "iam:PutUserPolicy",
  "iam:PutGroupPolicy",
  "iam:PutRolePolicy",
  "iam:SetDefaultPolicyVersion",
  "organizations:ListAccounts",
  "organizations:ListPolicies",
  "organizations:DescribePolicy",
  "organizations:UpdatePolicy",
  "organizations:DescribeOrganization",
  "sso:DescribePermissionSet",
  "sso:DescribePermissionSetProvisioningStatus",
  "sso:GetInlinePolicyForPermissionSet",
  "sso:ListInstances",
  "sso:ListPermissionSets",
  "sso:ProvisionPermissionSet",
  "sso:PutInlinePolicyToPermissionSet",
  "sts:AssumeRole"
  ```

**작은 정보**  
시작하려면 계정의 하위 집합(예: 테스트 계정)을 사용하여 제안된 변경 사항이 예상되는지 확인하는 것이 좋습니다.  
그리고 나면 조직의 나머지 계정에 대해 스크립트를 다시 실행할 수 있습니다.

## 1단계: 환경 설정
<a name="set-up-your-environment-and-download-the-scripts"></a>

시작하려면 필수 파일들을 [AWS  샘플](https://github.com/aws-samples/bulk-policy-migrator-scripts-for-account-cost-billing-consoles) 웹 사이트에서 다운로드하세요. 그런 다음 명령을 실행하여 환경을 설정하세요.

**환경을 설정하려면**

1. [AWS  샘플](https://github.com/aws-samples/bulk-policy-migrator-scripts-for-account-cost-billing-consoles) 웹 사이트에서 리포지토리를 복제하세요. 명령줄 창에서 다음 명령을 사용할 수 있습니다.

   ```
   git clone https://github.com/aws-samples/bulk-policy-migrator-scripts-for-account-cost-billing-consoles.git
   ```

1. 파일을 다운로드한 디렉터리로 이동합니다. 다음 명령을 사용할 수 있습니다.

   ```
   cd bulk-policy-migrator-scripts-for-account-cost-billing-consoles
   ```

   리포지토리에서 다음과 같은 스크립트 및 리소스를 확인할 수 있습니다.
   + `billing_console_policy_migrator_role.json` – 조직의 멤버 계정에서 `BillingConsolePolicyMigratorRole` IAM 역할을 만들어 내는 CloudFormation 템플릿입니다. 이 역할은 스크립트에서 역할을 맡은 다음 영향을 받는 정책을 읽고 업데이트할 수 있게 해줍니다.
   + `action_mapping_config.json` – 새 작업에 대한 이전 작업의 일대다 매핑을 포함하고 있습니다. 스크립트는 이 파일을 사용하여 이전 작업이 포함되어 있고 영향 받는 각 정책에 대하여 새로운 작업을 제안합니다.

     이전 작업은 각각 여러 개의 세분화된 작업에 대응됩니다. 파일에 제안된 새 작업은 마이그레이션 AWS 서비스 전에 사용자에게 동일한에 대한 액세스 권한을 제공합니다.
   + `identify_affected_policies.py` – 조직에서 영향을 받는 정책을 검사하고 식별합니다. 이 스크립트는 영향을 받는 정책을 제안된 새로운 작업과 함께 나열하는 `affected_policies_and_suggestions.json` 파일을 생성합니다.

     동일한 이전 작업 세트를 사용하는 영향을 받는 정책은 JSON 파일에 함께 그룹으로 묶입니다. 따라서 제안된 새로운 작업을 검토하거나 업데이트할 수 있습니다.
   + `update_affected_policies.py` – 조직에서 영향을 받는 정책을 업데이트합니다. 스크립트는 `affected_policies_and_suggestions.json` 파일을 입력한 다음 정책에 제안된 새로운 작업을 추가합니다.
   + `rollback_affected_policies.py` – (선택 사항) 영향을 받는 정책에 대한 변경 사항을 되돌립니다. 이 스크립트는 영향을 받는 정책에서 세분화된 새로운 작업을 제거합니다.

1. 다음 명령을 실행하여 가상 환경을 설정하고 활성화합니다.

   ```
   python3 -m venv venv
   ```

   ```
   source venv/bin/activate
   ```

1. 다음 명령을 실행하여 AWS SDK for Python (Boto3) 종속성을 설치합니다.

   ```
   pip install -r requirements.txt
   ```
**참고**  
 AWS Command Line Interface ()를 사용하도록 AWS 자격 증명을 구성해야 합니다AWS CLI. 자세한 내용은 [AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/guide/credentials.html) 단원을 참조하십시오.

자세한 내용은 [README.md](https://github.com/aws-samples/bulk-policy-migrator-scripts-for-account-cost-billing-consoles#readme) 파일을 참조하세요.

## 2단계: CloudFormation StackSet 생성
<a name="create-the-cloudformation-stack"></a>

이 절차에 따라 CloudFormation 스택 세트**를 생성합니다. 그러면 이 스택 세트에서 조직의 모든 멤버 계정에 대한 `BillingConsolePolicyMigratorRole` IAM 역할이 생성됩니다.

**참고**  
이 단계는 관리 계정(지급인 계정)에서 한 번만 수행하는 것으로 충분합니다.

**CloudFormation StackSet 생성 방법**

1. 텍스트 편집기에서 `billing_console_policy_migrator_role.json` 파일을 열고 *`<management_account>`*의 각 인스턴스를 지급인 계정의 계정 ID(예: *123456789012*)로 바꿉니다.

1. 파일을 저장합니다.

1. 지급인 계정으로 AWS Management Console 에 로그인합니다.

1. CloudFormation 콘솔에서 업데이트한 `billing_console_policy_migrator_role.json` 파일을 이용하여 스택 세트를 생성하세요.

   자세한 내용은 *AWS CloudFormation 사용 설명서*[의 AWS CloudFormation 콘솔에서 스택 세트 생성을](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/stacksets-getting-started-create.html) 참조하세요.

CloudFormation에서 스택 세트를 생성하고 나면 조직에 있는 개별 멤버 계정에 `BillingConsolePolicyMigratorRole` IAM 역할이 생깁니다.

IAM 역할에는 다음과 같은 권한이 포함됩니다.

```
"iam:GetAccountAuthorizationDetails",
"iam:GetPolicy",
"iam:GetPolicyVersion",
"iam:GetUserPolicy",
"iam:GetGroupPolicy",
"iam:GetRolePolicy",
"iam:CreatePolicyVersion",
"iam:DeletePolicyVersion",
"iam:ListPolicyVersions",
"iam:PutUserPolicy",
"iam:PutGroupPolicy",
"iam:PutRolePolicy",
"iam:SetDefaultPolicyVersion"
```

**참고**  
각 멤버 계정에 대해 스크립트는 [AssumeRole](https://docs.aws.amazon.com/STS/latest/APIReference/API_AssumeRole.html) API 작업을 호출하여 `BillingConsolePolicyMigratorRole` IAM 역할을 맡을 임시 자격 증명을 가져옵니다.
스크립트는 [ListAccounts](https://docs.aws.amazon.com/organizations/latest/APIReference/API_ListAccounts.html) API 작업을 호출하여 모든 멤버 계정을 가져옵니다.
또한 스크립트는 IAM API 작업을 호출하여 정책에 대한 읽기 및 쓰기 권한을 수행합니다.

## 3단계: 영향을 받는 정책 파악
<a name="identify-the-affected-policies"></a>

스택 세트를 만들고 파일을 다운로드한 후 `identify_affected_policies.py` 스크립트를 실행하세요. 이 스크립트는 각 멤버 계정의 `BillingConsolePolicyMigratorRole` IAM 역할을 맡은 후 영향을 받는 정책을 파악합니다.

**영향을 받는 정책을 파악하려면**

1. 스크립트를 다운로드한 디렉터리로 이동합니다.

   ```
   cd policy_migration_scripts/scripts
   ```

1. `identify_affected_policies.py` 스크립트 실행.

다음 입력 파라미터를 사용할 수 있습니다.
+ AWS 계정 스크립트가 스캔하도록 하려는 입니다. 계정을 지정하려면 다음과 같은 입력 파라미터를 사용하세요.
  +  `--all` – 조직의 모든 멤버 계정을 검사합니다.

    ```
    python3 identify_affected_policies.py --all
    ```
  +  `--accounts` – 조직에 있는 멤버 계정의 서브셋을 검사합니다.

    ```
    python3 identify_affected_policies.py --accounts 111122223333, 444455556666, 777788889999
    ```
  + `--exclude-accounts` – 조직에 있는 특정한 멤버 계정을 제외합니다.

    ```
    python3 identify_affected_policies.py --all --exclude-accounts 111111111111, 222222222222, 333333333333
    ```
+ ` –-action-mapping-config-file` – (선택 사항) `action_mapping_config.json` 파일의 경로를 지정합니다. 스크립트는 이 파일을 사용하여 영향을 받는 정책에 대한 제안된 업데이트를 생성합니다. 경로를 지정하지 않으면 스크립트에서 폴더의 `action_mapping_config.json` 파일을 사용합니다.

  ```
  python3 identify_affected_policies.py –-action-mapping-config-file c:\Users\username\Desktop\Scripts\action_mapping_config.json –-all
  ```

**참고**  
이 스크립트를 사용해서 조직 단위(OU)를 지정할 수는 없습니다.

스크립트를 실행한 후에는 `Affected_Policies_<Timestamp>` 폴더에 두 개의 JSON 파일이 만들어집니다.
+ `affected_policies_and_suggestions.json`
+ `detailed_affected_policies.json`

**`affected_policies_and_suggestions.json`**  
 영향을 받는 정책을 제안된 새로운 작업과 함께 나열합니다. 동일한 이전 작업 세트를 사용하는 영향을 받는 정책은 파일에서 함께 그룹화됩니다.  
이 파일은 다음 섹션을 포함하고 있습니다.  
+ 다음 사항을 포함하여 스크립트에서 지정한 계정을 개략적으로 설명하는 메타데이터
  + 검사한 계정과 `identify_affected_policies.py` 스크립트에 사용된 입력 파라미터
  + 영향을 받는 계정 수
  + 영향을 받는 정책 수
  + 유사한 정책 그룹 수
+ 유사 정책 그룹 – 다음과 같은 섹션을 포함하여 계정과 정책 세부 정보 목록을 포함합니다.
  + `ImpactedPolicies` – 영향을 받고 그룹에 포함되는 정책을 지정합니다.

     
  + `ImpactedPolicyStatements` – 현재 영향을 받는 정책에서 이전 작업을 사용하는 `Sid` 블록에 대한 정보를 제공합니다. 이 섹션에는 이전 작업과 `Effect`, `Principal`, `NotPrincipal`, `NotAction` 및`Condition`과 같은  IAM 요소가 포함되어 있습니다.
+ `SuggestedPolicyStatementsToAppend` – 새로운 `SID` 블록으로 추가되는 제안된 새 작업을 제공합니다.

  정책을 업데이트할 경우 이 블록이 정책 끝부분에 추가됩니다.

**Example 예시 `affected_policies_and_suggestions.json` 파일**  
이 파일은 다음과 같은 기준에 따라 비슷한 정책을 그룹화합니다.  
+ 같은 이전 작업 사용 – 모든 `SID` 블록 전반에서 같은 이전 작업을 포함하는 정책입니다.
+ 일치하는 세부 정보 – 정책에는 영향을 받는 작업 외에도 다음과 같은 동일한 IAM 요소가 있습니다.
  + `Effect` (`Allow`/`Deny`)
  + `Principal`(액세스가 허용되거나 거부된 사용자)
  + `NotAction`(허용되지 않는 작업)
  + `NotPrincipal`(액세스가 명시적으로 거부된 사용자)
  + `Resource` (정책이 적용되는 AWS 리소스)
  + `Condition`(정책이 적용되는 구체적인 조건) 
자세한 내용은 [IAM 정책 예시](#examples-of-similar-policies) 단원을 참조하십시오.

**Example 예: `affected_policies_and_suggestions.json`**  

```
[{
        "AccountsScanned": [
            "111111111111",
            "222222222222"
        ],
        "TotalAffectedAccounts": 2,
        "TotalAffectedPolicies": 2,
        "TotalSimilarPolicyGroups": 2
    },
    {
        "GroupName": "Group1",
        "ImpactedPolicies": [{
                "Account": "111111111111",
                "PolicyType": "UserInlinePolicy",
                "PolicyName": "Inline-Test-Policy-Allow",
                "PolicyIdentifier": "1111111_1-user:Inline-Test-Policy-Allow"
            },
            {
                "Account": "222222222222",
                "PolicyType": "UserInlinePolicy",
                "PolicyName": "Inline-Test-Policy-Allow",
                "PolicyIdentifier": "222222_1-group:Inline-Test-Policy-Allow"
            }
        ],
        "ImpactedPolicyStatements": [
            [{
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "aws-portal:ViewAccounts"
                ],
                "Resource": "*"
            }]
        ],
        "SuggestedPolicyStatementsToAppend": [{
            "Sid": "BillingConsolePolicyMigrator0",
            "Effect": "Allow",
            "Action": [
                "account:GetAccountInformation",
                "account:GetAlternateContact",
                "account:GetChallengeQuestions",
                "account:GetContactInformation",
                "billing:GetContractInformation",
                "billing:GetIAMAccessPreference",
                "billing:GetSellerOfRecord",
                "payments:ListPaymentPreferences"
            ],
            "Resource": "*"
        }]
    },
    {
        "GroupName": "Group2",
        "ImpactedPolicies": [{
                "Account": "111111111111",
                "PolicyType": "UserInlinePolicy",
                "PolicyName": "Inline-Test-Policy-deny",
                "PolicyIdentifier": "1111111_2-user:Inline-Test-Policy-deny"
            },
            {
                "Account": "222222222222",
                "PolicyType": "UserInlinePolicy",
                "PolicyName": "Inline-Test-Policy-deny",
                "PolicyIdentifier": "222222_2-group:Inline-Test-Policy-deny"
            }
        ],
        "ImpactedPolicyStatements": [
            [{
                "Sid": "VisualEditor0",
                "Effect": "deny",
                "Action": [
                    "aws-portal:ModifyAccount"
                ],
                "Resource": "*"
            }]
        ],
        "SuggestedPolicyStatementsToAppend": [{
            "Sid": "BillingConsolePolicyMigrator1",
            "Effect": "Deny",
            "Action": [
                "account:CloseAccount",
                "account:DeleteAlternateContact",
                "account:PutAlternateContact",
                "account:PutChallengeQuestions",
                "account:PutContactInformation",
                "billing:PutContractInformation",
                "billing:UpdateIAMAccessPreference",
                "payments:UpdatePaymentPreferences"
            ],
            "Resource": "*"
        }]
    }
]
```

**`detailed_affected_policies.json`**  
`identify_affected_policies.py` 스크립트에서 멤버 계정에 대해 식별한 영향을 받는 모든 정책에 대한 정의를 포함하고 있습니다.  
파일은 비슷한 정책을 그룹화합니다. 이 파일을 참조로 사용하여 각 멤버 계정에 로그인하고 개별 정책 및 계정에 대한 업데이트를 각각 검토할 필요 없이 정책 변경 내용을 검토하고 관리할 수 있습니다.  
파일에서 정책 이름(예: `YourCustomerManagedReadOnlyAccessBillingUser`)을 검색하고 영향을 받는 정책 정의를 검토할 수 있습니다.  

**Example 예시: `detailed_affected_policies.json`**  

## 4단계: 제안된 변경 내용 검토
<a name="review-the-affected-policies"></a>

스크립트에서 `affected_policies_and_suggestions.json` 파일이 생성되면 해당 파일을 검토하고 변경하세요.

**영향을 받는 정책을 검토하려면**

1. 텍스트 편집기에서 `affected_policies_and_suggestions.json` 파일을 엽니다.

1. `AccountsScanned` 섹션에서 검사한 계정 전반에서 식별된 비슷한 그룹의 수가 예상되는지 확인하세요.

1. 영향을 받는 정책에 추가될 예정인 제안된 세분화된 작업을 검토합니다.

1. 필요에 따라 파일을 업데이트한 다음 저장하세요.

### 예 1: `action_mapping_config.json` 파일 업데이트
<a name="example-1-update-action-mapping-config-file"></a>

`action_mapping_config.json`에서 제안된 매핑을 업데이트할 수 있습니다. 파일을 업데이트한 후 `identify_affected_policies.py` 스크립트를 다시 실행할 수 있습니다. 이 스크립트에서는 영향을 받는 정책에 대한 업데이트된 제안을 생성합니다.

`action_mapping_config.json` 파일의 버전을 여러 개 만들어 다른 권한을 가진 여러 개의 계정에 대한 정책을 변경할 수 있습니다. 예를 들어, 이름이 `action_mapping_config_testing.json`인 파일을 하나 만들어 테스트 계정과 `action_mapping_config_production.json` 프로덕션 계정에 대한 권한을 마이그레이션할 수 있습니다.

### 예 2: `affected_policies_and_suggestions.json` 파일 업데이트
<a name="example-2-make-changes-to-affected-policy-groups"></a>

영향을 받는 특정 정책 그룹에 대해 제안된 교체를 변경하려면 `affected_policies_and_suggestions.json` 파일 안에서 제안된 교체 섹션을 직접 편집할 수 있습니다.

이 섹션에서 변경한 사항은 영향을 받는 특정 정책 그룹 안에 있는 모든 정책에 적용됩니다.

### 예 3: 특정 정책 사용자 지정
<a name="example-3-customize-a-specific-policy"></a>

영향을 받는 정책 그룹 내에서 제안된 업데이트와 다르게 변경해야 할 정책을 발견할 경우 다음과 같은 작업을 수행할 수 있습니다.
+ `identify_affected_policies.py` 스크립트에서 특정 계정을 제외하세요. 그리고 나서 제외된 해당 계정을 별도로 검토할 수 있습니다.
+ 영향을 받는 정책과 다른 권한이 필요한 계정을 제거하여 영향을 받는 `Sid` 블록을 업데이트합니다. 특정 계정만 포함하거나 영향을 받는 현재 업데이트 정책 실행에서 제외하는 JSON 블록을 만드세요.

  `identify_affected_policies.py` 스크립트를 다시 실행할 경우 업데이트된 블록에 관련 계정만 표시됩니다. 그러면 해당 특정 `Sid` 블록에 대해 제안된 교체 항목을  수정할 수 있습니다.

## 5단계: 영향을 받는 정책 업데이트
<a name="update-the-affected-policies"></a>

제안된 교체를 검토하고 수정하고 나면 `update_affected_policies.py` 스크립트를 실행하세요. 스크립트는 입력으로 `affected_policies_and_suggestions.json` 파일을 사용합니다. 이 스크립트는 `BillingConsolePolicyMigratorRole` IAM 역할을 맡아 `affected_policies_and_suggestions.json` 파일에 나열된 영향을 받는 정책을 업데이트합니다.

**영향을 받는 정책을 업데이트하려면**

1. 아직 수행하지 않은 경우,  AWS CLI에 대한 명령줄 창을 여세요.

1. 다음 명령을 입력하여 `update_affected_policies.py` 스크립트를 실행합니다. 다음과 같은 입력 파라미터를 입력할 수 있습니다.
+ 업데이트할 영향을 받는 정책의 목록이 포함된 `affected_policies_and_suggestions.json` 파일의 디렉터리 경로입니다. 이 파일은 이전 단계의 출력입니다.

```
python3 update_affected_policies.py --affected-policies-directory Affected_Policies_<Timestamp>
```

`update_affected_policies.py` 스크립트에서는 제안된 새로운 작업을 사용하여 `affected_policies_and_suggestions.json` 파일 안에 있는 영향을 받는 정책을 업데이트합니다. 스크립트는 `BillingConsolePolicyMigrator#`(으)로 식별된 정책에 `Sid` 블록을 추가합니다. 여기서 *\$1*은 증분 카운터(예: 1, 2, 3)에 대응됩니다.

예를 들어 영향을 받는 정책에 이전 작업을 사용하는 `Sid` 블록이 여러 개 있는 경우 스크립트는 각 `Sid` 블록에 대응되는 `BillingConsolePolicyMigrator#`(으)로 나타나는 복수의 `Sid` 블록을 추가합니다.

**중요**  
스크립트는 정책에서 이전 IAM 작업을 제거하거나 정책의 기존 `Sid` 블록을 변경하지 않습니다. 스크립트는 그 대신 `Sid` 블록을 만들고 이를 정책 끝에 추가합니다. 이러한 새 `Sid` 블록에는 JSON 파일에서 제안된 새로운 작업이 포함되어 있습니다. 이 작업은 원래 정책의 권한이 변경되지 않도록 합니다.
변경 사항을 되돌려야 하는 경우에 대비해 `BillingConsolePolicyMigrator#` `Sid` 블록의 이름을 변경하지 않는 것을 권장합니다.

**Example 예: 추가된 `Sid` 블록이 있는 정책**  
`BillingConsolePolicyMigrator1` 및 `BillingConsolePolicyMigrator2` 블록에서 추가된 `Sid` 블록을 확인하세요.

스크립트는 실패한 작업이 포함된 상태 보고서를 생성하고 JSON 파일을 로컬로 출력합니다.

**Example 예: 상태 보고서**  

```
[{
    "Account": "111111111111",
    "PolicyType": "Customer Managed Policy"
    "PolicyName": "AwsPortalViewPaymentMethods",
    "PolicyIdentifier": "identifier",
    "Status": "FAILURE", // FAILURE or SKIPPED	
    "ErrorMessage": "Error message details"
}]
```

**중요**  
`identify_affected_policies.py` 및 `update_affected_policies.py` 스크립트를 다시 실행할 경우 해당 스크립트는 `BillingConsolePolicyMigratorRole#``Sid` 블록이 포함된 모든 정책을 건너뜁니다. 스크립트는 해당 정책이 이전에 검사 및 업데이트되었으며 추가 업데이트가 필요하지 않다고 가정합니다. 그 결과 스크립트가 정책에서 동일한 작업을 중복 수행하는 것을 예방할 수 있습니다.
영향을 받는 정책을 업데이트하면 영향을 받는 정책 도구를 사용하여 새 IAM을 사용할 수 있습니다. 문제를 발견할 경우 해당 도구를 사용하여 이전 작업으로 다시 전환할 수 있습니다. 또한 스크립트를 사용하여 정책 업데이트를 되돌릴 수도 있습니다.  
자세한 내용은 [영향을 받는 정책 도구를 사용하는 방법](migrate-security-iam-tool.md) 및 [AWS 결제, 비용 관리 및 계정 콘솔 권한 변경 블로그 게시물을 참조하세요](https://aws.amazon.com/blogs/aws-cloud-financial-management/changes-to-aws-billing-cost-management-and-account-consoles-permissions/).
업데이트를 관리하려면 다음과 같이 할 수 있습니다.  
각 계정에 대해 개별적으로 스크립트를 실행합니다.
비슷한 계정(예: 테스트, QA, 프로덕션 계정)에 대해 스크립트를 일괄 실행합니다.
모든 계정에 대해 스크립트를 실행합니다.
몇몇 계정을 일괄 업데이트한 다음 다른 계정을 개별적으로 업데이트하는 방법 중에서 선택할 수 있습니다.

## 6단계: 변경 내용 되돌리기(선택 사항)
<a name="revert-changes"></a>

`rollback_affected_policies.py` 스크립트에서는 특정 계정의 영향을 받는 각 정책에 적용된 변경 내용을 되돌립니다. 스크립트에서는 `update_affected_policies.py` 스크립트가 추가한 모든 `Sid` 블록을 제거합니다. 이러한 `Sid` 블록의 형식은 `BillingConsolePolicyMigratorRole#`입니다.

**변경 사항을 되돌리려면**

1. 아직 수행하지 않은 경우,  AWS CLI에 대한 명령줄 창을 여세요.

1. 다음 명령을 입력하여 `rollback_affected_policies.py` 스크립트를 실행합니다. 다음 입력 파라미터를 입력할 수 있습니다.
+ `--accounts` 
  + 롤백에 포함할 AWS 계정 IDs의 쉼표로 구분된 목록을 지정합니다.
  + 다음 예제에서는 지정된의 정책을 스캔 AWS 계정하고 `BillingConsolePolicyMigrator#` `Sid` 블록이 있는 문을 제거합니다.

    ```
    python3 rollback_affected_policies.py –-accounts 111122223333, 555555555555, 666666666666
    ```
+ `--all`
  + 조직의 AWS 계정 IDs 포함합니다.
  + 다음 예제에서는 조직에 있는 정책을 모두 검사하고 `BillingConsolePolicyMigratorRole#` `Sid` 블록을 사용하여 모든 명령문을 제거합니다.

  ```
  python3 rollback_affected_policies.py –-all
  ```
+ `--exclude-accounts`
  + 롤백에서 제외하려는 AWS 계정 IDs의 쉼표로 구분된 목록을 지정합니다.

    `--all` 파라미터도 지정하는 경우에만 이 파라미터를 사용할 수 있습니다.
  + 다음 예시에서는 지정된 계정을 제외한 조직의 모든 AWS 계정 에 대한 정책을 스캔합니다.

    ```
    python3 rollback_affected_policies.py --all --exclude-accounts 777777777777, 888888888888, 999999999999
    ```

## IAM 정책 예시
<a name="examples-of-similar-policies"></a>

정책은 다음 사항이 동일한 경우 비슷한 것으로 간주됩니다.
+  모든 `Sid` 블록에서 영향을 받은 작업 
+  다음 IAM 요소에 대한 세부 정보:
  + `Effect` (`Allow`/`Deny`)
  + `Principal`(액세스가 허용되거나 거부된 사용자)
  + `NotAction`(허용되지 않는 작업)
  + `NotPrincipal`(액세스가 명시적으로 거부된 사용자)
  + `Resource` (정책이 적용되는 AWS 리소스)
  + `Condition`(정책이 적용되는 구체적인 조건)

다음 예제는 IAM이 차이점을 기반으로 비슷하다고 판단하거나 비슷하지 않다고 간주할 수 있는 정책을 보여줍니다.

**Example 예 1: 정책을 비슷하다고 간주**  
각 정책 유형은 다르지만 두 정책 모두에 같은 영향을 받는 `Action`이 있는 `Sid` 블록 하나가 포함되어 있습니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing"
        ],
        "Resource": "*"
    }]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing"
        ],
        "Resource": "*"
    }]
}
```

**Example 예 2: 정책을 비슷하다고 간주**  
두 정책에는 모두 같은 영향을 받는 `Sid`가 있는 `Action` 블록이 하나 포함되어 있습니다. 정책 2에는 추가 작업이 포함되지만 이러한 작업은 영향을 받지 않습니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing"
        ],
        "Resource": "*"
    }]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing",
            "athena:*"
        ],
        "Resource": "*"
    }]
}
```

**Example 예 3: 정책을 비슷하다고 간주하지 않음**  
두 정책에는 모두 같은 영향을 받는 `Sid`가 있는 `Action` 블록이 하나 포함되어 있습니다. 하지만 정책 2에는 정책 1에 없는 `Condition` 요소가 포함되어 있습니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing"
        ],
        "Resource": "*"
    }]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:ViewAccount",
            "aws-portal:*Billing",
            "athena:*"
        ],
        "Resource": "*",
        "Condition": {
            "BoolIfExists": {
                "aws:MultiFactorAuthPresent": "true"
            }
        }
    }]
}
```

**Example 예 4: 정책을 비슷하다고 간주**  
정책 1에는 영향을 받는 `Action`이 있는 단일 `Sid` 블록이  있습니다. 정책 2에는 `Sid` 블록이 여러 개 있지만 영향을 받는 `Action`은 하나의 블록에만 나타납니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:View*"
        ],
        "Resource": "*"
    }]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:View*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Allow",
            "Action": [
                "cloudtrail:Get*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 예 5: 정책을 비슷하다고 간주하지 않음**  
정책 1에는 영향을 받는 `Action`이 있는 단일 `Sid` 블록이  있습니다. 정책 2에는 `Sid` 블록이 여러 개 있고 영향을 받는 `Action`이 여러 개의 블록에 나타납니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
        "Sid": "VisualEditor0",
        "Effect": "Allow",
        "Action": [
            "aws-portal:View*"
        ],
        "Resource": "*"
    }]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:View*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "aws-portal:Modify*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 예 6: 정책을 비슷하다고 간주**  
두 정책 모두에 복수의 `Sid` 블록이 있고 각 `Sid` 블록마다 같은 영향을 받는 `Action`이 있습니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:*Account",
                "iam:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "aws-portal:Modify*",
                "iam:Update*"
            ],
            "Resource": "*"
        }
    ]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:*Account",
                "athena:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "aws-portal:Modify*",
                "athena:Update*"
            ],
            "Resource": "*"
        }
    ]
}
```

**Example 예제 7**  
다음과 같은 두 정책은 비슷한 것으로 간주되지 않습니다.  
정책 1에는 영향을 받는 `Action`이 있는 단일 `Sid` 블록이  있습니다. 정책 2에도 같은 영향을 받는 `Action`이 있는 `Sid` 블록이  있습니다. 하지만 정책 2에는 서로 다른 작업이 있는 또 다른 `Sid` 블록도 포함되어 있습니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:*Account",
                "iam:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "aws-portal:Modify*",
                "iam:Update*"
            ],
            "Resource": "*"
        }
    ]
}
```  
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
            "Sid": "VisualEditor0",
            "Effect": "Allow",
            "Action": [
                "aws-portal:*Account",
                "athena:Get*"
            ],
            "Resource": "*"
        },
        {
            "Sid": "VisualEditor1",
            "Effect": "Deny",
            "Action": [
                "aws-portal:*Billing",
                "athena:Update*"
            ],
            "Resource": "*"
        }
    ]
}
```

# 세분화된 IAM 작업 매핑 참조
<a name="migrate-granularaccess-iam-mapping-reference"></a>

**참고**  
다음 AWS Identity and Access Management (IAM) 작업은 2023년 7월에 표준 지원이 종료되었습니다.  
`aws-portal` 네임스페이스
`purchase-orders:ViewPurchaseOrders`
`purchase-orders:ModifyPurchaseOrders`
를 사용하는 경우 [대량 정책 마이그레이션 스크립트](migrate-iam-permissions.md) 또는 대량 정책 마이그레이션기를 사용하여 지급인 계정에서 정책을 업데이트할 AWS Organizations수 있습니다. 또한 [기존 작업-세분화 작업 매핑 참조](#migrate-granularaccess-iam-mapping-reference)를 사용하여 추가해야 하는 IAM 작업을 확인할 수 있습니다.  
가 있거나 AWS 계정 2023년 3월 6일 오전 11시(PDT) 이후에 AWS Organizations 생성된의 일부인 경우 세분화된 작업이 조직에 이미 적용됩니다.

권한 정책 또는 서비스 제어 정책(SCP)에서 다음과 같은 IAM 작업을 마이그레이션해야 합니다.
+ `aws-portal:ViewAccount`
+  `aws-portal:ViewBilling`
+ `aws-portal:ViewPaymentMethods`
+  `aws-portal:ViewUsage` 
+  `aws-portal:ModifyAccount`
+  `aws-portal:ModifyBilling`
+  `aws-portal:ModifyPaymentMethods` 
+ `purchase-orders:ViewPurchaseOrders` 
+ `purchase-orders:ModifyPurchaseOrders` 

이 주제를 사용하여 사용 중지되는 각 IAM 작업에 대한 세분화된 이전 작업과 새로운 작업의 매핑을 확인할 수 있습니다.

**개요**

1.  AWS 계정에서 영향을 받는 IAM 정책을 검토합니다. 이렇게 하려면 **영향을 받는 정책** 도구의 단계에 따라 영향을 받는 IAM 정책을 식별합니다. [영향을 받는 정책 도구를 사용하는 방법](migrate-security-iam-tool.md)을(를) 참조하세요.

1. IAM 콘솔을 사용하여 새로운 세분화된 권한을 정책에 추가합니다. 예를 들어 정책에서 `purchase-orders:ModifyPurchaseOrders` 권한을 허용하는 경우 [purchase-orders:ModifyPurchaseOrders 매핑](#mapping-for-purchase-ordersmodifypurchaseorders) 테이블에 각 작업을 추가해야 합니다.

   **이전 정책**

   다음 정책은 사용자가 계정에서 구매 주문을 추가, 삭제 또는 수정할 수 있도록 허용합니다.

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

****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Sid": "VisualEditor0",
               "Effect": "Allow",
               "Action": "purchase-orders:ModifyPurchaseOrders",
               "Resource": "arn:aws:purchase-orders::123456789012:purchase-order/*"
           }
       ]
   }
   ```

------

   **새 정책**

   다음 정책도 사용자가 계정에서 구매 주문을 추가, 삭제 또는 수정할 수 있도록 허용합니다. 각 세분화된 권한은 이전 `purchase-orders:ModifyPurchaseOrders` 권한 이후에 표시된다는 점에 유의하세요. 이러한 권한을 사용하면 허용하거나 거부하려는 작업을 더 효과적으로 제어할 수 있습니다.
**작은 정보**  
이 마이그레이션이 완료될 때까지 사용 권한이 손실되지 않도록 이전 권한을 유지하는 것이 좋습니다.

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

****  

   ```
   {
   	"Version":"2012-10-17",		 	 	 
   	"Statement": [
   		{
   			"Sid": "VisualEditor0",
   			"Effect": "Allow",
   			"Action": [
   				"purchase-orders:ModifyPurchaseOrders",
   				"purchase-orders:AddPurchaseOrder",
   				"purchase-orders:DeletePurchaseOrder",
   				"purchase-orders:UpdatePurchaseOrder",
   				"purchase-orders:UpdatePurchaseOrderStatus"
   			],
   			"Resource": "arn:aws:purchase-orders::123456789012:purchase-order/*"
   		}
   	]
   }
   ```

------

1. 변경 내용을 저장합니다.

**참고**  
IAM 콘솔에서 정책을 수동으로 편집하려면 IAM 사용 설명서의 [고객 관리형 정책 편집(콘솔)](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-edit.html#edit-inline-policy-console) 을 참조하세요.**
세분화된 작업(새 작업)을 사용하도록 IAM 정책을 일괄 마이그레이션하려면 [세분화된 IAM 작업을 사용하도록 스크립트를 사용하여 정책을 대량으로 마이그레이션](migrate-iam-permissions.md) 섹션을 참조하세요.

**Contents**
+ [aws-portal:ViewAccount 매핑](#mapping-for-aws-portalviewaccount)
+ [aws-portal:ViewBilling 매핑](#mapping-for-aws-portalviewbilling)
+ [aws-portal:ViewPaymentMethods 매핑](#mapping-for-aws-portalviewpaymentmethods)
+ [aws-portal:ViewUsage 매핑](#mapping-for-aws-portalviewusage)
+ [aws-portal:ModifyAccount 매핑](#mapping-for-aws-portalmodifyaccount)
+ [aws-portal:ModifyBilling 매핑](#mapping-for-aws-portalmodifybilling)
+ [aws-portal:ModifyPaymentMethods 매핑](#mapping-for-aws-portalmodifypaymentmethods)
+ [purchase-orders:ViewPurchaseOrders 매핑](#mapping-for-purchase-ordersviewpurchaseorders)
+ [purchase-orders:ModifyPurchaseOrders 매핑](#mapping-for-purchase-ordersmodifypurchaseorders)

## aws-portal:ViewAccount 매핑
<a name="mapping-for-aws-portalviewaccount"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  account:GetAccountInformation |  계정에 대한 계정 정보를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  account:GetAlternateContact  |  계정의 대체 연락처를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  account:GetContactInformation  |  계정의 기본 연락처 정보를 검색하는 권한을 부여합니다. |  읽기  | 
|  billing:GetContractInformation  |  계약 번호, 최종 사용자 조직 이름, 구매 주문 번호 및 해당 계정이 공공 부문 고객에게 서비스를 제공하는 데 사용되는지 등 계정의 계약 정보를 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetIAMAccessPreference  |  IAM 액세스 허용 결제 기본 설정의 상태를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetSellerOfRecord  |  계정의 기본 판매자 기록을 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:ListPaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 가져올 수 있는 권한을 부여합니다. |  읽기  | 

## aws-portal:ViewBilling 매핑
<a name="mapping-for-aws-portalviewbilling"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  account:GetAccountInformation  |  계정에 대한 계정 정보를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetBillingData |  결제 정보에 대한 쿼리를 수행할 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetBillingDetails |  세부 품목 결제 정보를 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetBillingNotifications  |  계정 결제 정보와 AWS 관련하여에서 보낸 알림을 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetBillingPreferences |  예약 인스턴스, 절감형 플랜 및 크레딧 공유와 같은 결제 기본 설정을 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetContractInformation |  계약 번호, 최종 사용자 조직 이름, 구매 주문 번호 및 해당 계정이 공공 부문 고객에게 서비스를 제공하는 데 사용되는지 등 계정의 계약 정보를 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetCredits  |  사용한 크레딧을 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetIAMAccessPreference |  IAM 액세스 허용 결제 기본 설정의 상태를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:GetSellerOfRecord |  계정의 기본 판매자 기록을 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  billing:ListBillingViews |  견적 과금 그룹에 대한 과금 정보를 가져올 수 있는 권한을 부여합니다. |  List  | 
|  ce:DescribeNotificationSubscription |  예약 만료 알림을 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:DescribeReport  |  Cost Explorer 보고서 페이지를 볼 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetAnomalies |  이상 항목을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetAnomalyMonitors  |  이상 탐지 모니터를 쿼리할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetAnomalySubscriptions |  이상 탐지 구독을 쿼리할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetCostAndUsage  |  계정의 비용 및 사용 지표를 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetCostAndUsageWithResources  |  계정 리소스를 사용하여 비용 및 사용량 지표를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:GetCostCategories  |  지정된 기간 동안 비용 범주 이름 및 값을 쿼리할 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:GetCostForecast |  예측 기간에 대한 비용 예측을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetDimensionValues  |  일정 기간 동안 필터에 사용할 수 있는 모든 필터 값을 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:GetPreferences |  Cost Explorer 기본 설정 페이지를 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:GetReservationCoverage  |  계정의 예약 비율을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetReservationPurchaseRecommendation |  계정의 예약 권장 사항을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetReservationUtilization  |  계정의 사용률을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetRightsizingRecommendation  |  계정의 규모 조정 권장 사항을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetSavingsPlansCoverage  |  계정의 Savings Plans 적용 범위를 검색할 수 있는 권한을 부여합니다. |  Read  | 
| ce:GetSavingsPlansPurchaseRecommendation  |  계정의 Savings Plans 권장 사항을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetSavingsPlansUtilization  |  계정의 Savings Plans 사용률을 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetSavingsPlansUtilizationDetails  |  계정의 Savings Plans 사용률 세부 정보를 검색할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetTags  |  지정된 기간 동안 태그를 쿼리할 수 있는 권한을 부여합니다. |  Read  | 
|  ce:GetUsageForecast  |  예측 기간에 대한 사용량 예측을 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  ce:ListCostAllocationTags  |  비용 할당 태그를 나열하는 권한을 부여합니다. |  List  | 
|  ce:ListSavingsPlansPurchaseRecommendationGeneration  |  이전 추천 세대 목록을 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  consolidatedbilling:GetAccountBillingRole  |  계정 역할(지급인, 연결됨, 일반)을 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  consolidatedbilling:ListLinkedAccounts  |  구성원/연결된 계정 목록을 가져올 수 있는 권한을 부여합니다. |  List  | 
|  cur:GetClassicReport  |  청구서에 대한 CSV 보고서를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  cur:GetClassicReportPreferences  |  사용 보고서에 대한 클래식 보고서 활성화 상태를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  cur:ValidateReportDestination  |  AWS CUR 전송에 대한 적절한 권한을 가진 Amazon S3 버킷이 존재하는지 검증할 수 있는 권한을 부여합니다. |  읽기  | 
|  freetier:GetFreeTierAlertPreference  |  AWS 프리 티어 알림 기본 설정을 가져올 수 있는 권한을 부여합니다(이메일 주소 기준). |  읽기  | 
|  freetier:GetFreeTierUsage  |  AWS 프리 티어 사용 한도 및 month-to-date(MTD) 사용 상태를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  invoicing:GetInvoiceEmailDeliveryPreferences  |  인보이스 이메일 전송 기본 설정을 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  invoicing:GetInvoicePDF  |  인보이스 PDF를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  invoicing:ListInvoiceSummaries  |  계정 또는 연결된 계정에 대한 인보이스 요약 정보를 가져올 수 있는 권한을 부여합니다. |  List  | 
|  payments:GetPaymentInstrument  |  결제 수단에 대한 정보를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:GetPaymentStatus  |  인보이스의 결제 상태를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:ListPaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  tax:GetTaxInheritance  |  세금 상속 상태를 볼 수 있는 권한을 부여합니다. |  읽기  | 
|  tax:GetTaxRegistrationDocument  |  사업자 등록 문서를 다운로드할 수 있는 권한을 부여합니다. |  읽기  | 
|  tax:ListTaxRegistrations  |  사업자 등록을 볼 수 있는 권한을 부여합니다. |  읽기  | 

## aws-portal:ViewPaymentMethods 매핑
<a name="mapping-for-aws-portalviewpaymentmethods"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  account:GetAccountInformation  |  계정에 대한 계정 정보를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  invoicing:GetInvoicePDF  |  인보이스 PDF를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:GetPaymentInstrument  |  결제 수단에 대한 정보를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:GetPaymentStatus  |  인보이스의 결제 상태를 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:ListPaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 가져올 수 있는 권한을 부여합니다. |  List  | 

## aws-portal:ViewUsage 매핑
<a name="mapping-for-aws-portalviewusage"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  cur:GetUsageReport  |  AWS 서비스사용 보고서 워크플로의 사용 유형 및 작업 목록을 가져오고 사용 보고서를 다운로드할 수 있는 권한을 부여합니다. |  읽기  | 

## aws-portal:ModifyAccount 매핑
<a name="mapping-for-aws-portalmodifyaccount"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  account:CloseAccount  |  계정을 해지할 수 있는 권한을 부여합니다. |  쓰기  | 
|  account:DeleteAlternateContact  |  계정의 대체 연락처를 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  account:PutAlternateContact  |  계정의 대체 연락처를 수정할 수 있는 권한을 부여합니다. |  쓰기  | 
|  account:PutChallengeQuestions  |  계정에 대한 질문을 수정할 수 있는 권한을 부여합니다. |  쓰기  | 
|  account:PutContactInformation  | 계정의 기본 연락처 정보를 업데이트하는 권한을 부여합니다. |  쓰기  | 
|  billing:PutContractInformation  |  계정의 계약 정보, 최종 사용자 조직 이름 및 해당 계정이 공공 부문 고객에게 서비스를 제공하는 데 사용되는지를 설정할 수 있는 권한을 부여합니다. |  쓰기  | 
|  billing:UpdateIAMAccessPreference  |  IAM 액세스 허용 결제 기본 설정을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:UpdatePaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 

## aws-portal:ModifyBilling 매핑
<a name="mapping-for-aws-portalmodifybilling"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  billing:PutContractInformation  |  계정의 계약 정보, 최종 사용자 조직 이름 및 해당 계정이 공공 부문 고객에게 서비스를 제공하는 데 사용되는지를 설정할 수 있는 권한을 부여합니다. |  쓰기  | 
|  billing:RedeemCredits  |  AWS 크레딧을 사용할 수 있는 권한을 부여합니다. |  쓰기  | 
|  billing:UpdateBillingPreferences  |  예약 인스턴스, 절감형 플랜 및 크레딧 공유와 같은 결제 기본 설정을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:CreateAnomalyMonitor  |  새 이상 탐지 모니터를 생성할 수 있는 권한을 부여합니다. |  Write  | 
|  ce:CreateAnomalySubscription  |  새 이상 탐지 구독을 생성할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:CreateNotificationSubscription  |  예약 만료 알림을 생성할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:CreateReport  |  Cost Explorer 보고서를 생성할 수 있는 권한을 부여합니다. |  Write  | 
|  ce:DeleteAnomalyMonitor  |  이상 탐지 모니터를 삭제할 수 있는 권한을 부여합니다. |  Write  | 
|  ce:DeleteAnomalySubscription  |  이상 탐지 구독을 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:DeleteNotificationSubscription  |  예약 만료 알림을 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:DeleteReport  |  Cost Explorer 보고서를 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:ProvideAnomalyFeedback  |  탐지된 이상 항목에 대한 피드백을 제공할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:StartSavingsPlansPurchaseRecommendationGeneration  |  절감형 플랜 추천 생성을 요청할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:UpdateAnomalyMonitor  |  기존 이상 탐지 모니터를 업데이트할 수 있는 권한을 부여합니다. |  Write  | 
|  ce:UpdateAnomalySubscription  |  기존 이상 탐지 구독을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:UpdateCostAllocationTagsStatus  |  기존 비용 할당 태그 상태를 업데이트하는 권한을 부여합니다. |  쓰기  | 
|  ce:UpdateNotificationSubscription  |  예약 만료 알림을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  ce:UpdatePreferences  |  Cost Explorer 기본 설정 페이지를 편집할 수 있는 권한을 부여합니다. |  쓰기  | 
|  cur:PutClassicReportPreferences  |  클래식 보고서를 활성화할 수 있는 권한을 부여합니다. |  쓰기  | 
|  freetier:PutFreeTierAlertPreference  |  AWS 프리 티어 알림 기본 설정을 지정할 수 있는 권한을 부여합니다(이메일 주소 기준). |  쓰기  | 
|  invoicing:PutInvoiceEmailDeliveryPreferences  |  인보이스 이메일 전송 기본 설정을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:CreatePaymentInstrument  |  결제 수단을 생성할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:DeletePaymentInstrument  |  결제 수단을 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:MakePayment  |  결제 진행, 결제 인증, 결제 방법 확인, Advance Pay에 대한 자금 요청 문서 생성 권한을 부여합니다. |  쓰기  | 
|  payments:UpdatePaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  tax:BatchPutTaxRegistration  |  사업자 등록을 일괄 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
|  tax:DeleteTaxRegistration  |  사업자 등록 데이터를 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  tax:PutTaxInheritance  |  세금 상속을 설정할 수 있는 권한을 부여합니다. |  쓰기  | 

## aws-portal:ModifyPaymentMethods 매핑
<a name="mapping-for-aws-portalmodifypaymentmethods"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  account:GetAccountInformation  |  계정에 대한 계정 정보를 검색할 수 있는 권한을 부여합니다. |  읽기  | 
|  payments:DeletePaymentInstrument  |  결제 수단을 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:CreatePaymentInstrument  |  결제 수단을 생성할 수 있는 권한을 부여합니다. |  쓰기  | 
|  payments:MakePayment  |  결제 진행, 결제 인증, 결제 방법 확인, Advance Pay에 대한 자금 요청 문서 생성 권한을 부여합니다. |  쓰기  | 
|  payments:UpdatePaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 

## purchase-orders:ViewPurchaseOrders 매핑
<a name="mapping-for-purchase-ordersviewpurchaseorders"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  invoicing:GetInvoicePDF  |  인보이스 PDF를 가져올 수 있는 권한을 부여합니다. |  Get  | 
|  payments:ListPaymentPreferences  |  결제 기본 설정(예: 기본 결제 통화, 기본 결제 방법)을 가져올 수 있는 권한을 부여합니다. |  List  | 
|  purchase-orders:GetPurchaseOrder  | 구매 주문을 가져올 수 있는 권한을 부여합니다. |  읽기  | 
|  purchase-orders:ListPurchaseOrderInvoices | 구매 주문 및 세부 정보를 볼 수 있는 권한을 부여합니다. |  List  | 
|  purchase-orders:ListPurchaseOrders  |  사용 가능한 구매 주문을 모두 가져올 수 있는 권한을 부여합니다. |  List  | 

## purchase-orders:ModifyPurchaseOrders 매핑
<a name="mapping-for-purchase-ordersmodifypurchaseorders"></a>


|  새로운 작업  |  설명  |  액세스 레벨  | 
| --- | --- | --- | 
|  purchase-orders:AddPurchaseOrder |  구매 주문을 추가할 수 있는 권한을 부여합니다. |  쓰기  | 
| purchase-orders:DeletePurchaseOrder  |  구매 주문을 삭제할 수 있는 권한을 부여합니다. |  쓰기  | 
| purchase-orders:UpdatePurchaseOrder  |  기존 구매 주문을 업데이트할 수 있는 권한을 부여합니다. |  쓰기  | 
| purchase-orders:UpdatePurchaseOrderStatus  | 구매 주문 상태를 설정할 수 있는 권한을 부여합니다. |  쓰기  | 