

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

# ID 기반 정책
<a name="auth-and-access_iam-policies"></a>

권한 정책을 [IAM 자격 증명: 사용자, 사용자, 그룹 및 역할](https://docs.aws.amazon.com/IAM/latest/UserGuide/id.html)에 연결합니다. 자격 증명 기반 정책에서 자격 증명에 액세스할 수 있는 보안 암호와, 자격 증명이 보안 암호에 대해 수행할 수 있는 작업을 지정합니다. 자세한 내용은 [IAM 자격 증명 권한 추가 및 제거](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_manage-attach-detach.html)를 참조하세요.

다른 서비스의 애플리케이션이나 사용자를 나타내는 역할에 권한을 부여할 수 있습니다. 예를 들어 Amazon EC2 인스턴스에서 실행되는 애플리케이션은 데이터베이스에 액세스해야 할 수 있습니다. EC2 인스턴스 프로파일에 연결된 IAM 역할을 생성한 후 권한 정책을 사용하여 데이터베이스의 보안 인증 정보를 포함한 보안 암호에 대한 액세스 권한을 역할에 부여할 수 있습니다. 자세한 내용은 [IAM 역할을 사용하여 Amazon EC2 인스턴스에서 실행되는 애플리케이션에 권한 부여](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_switch-role-ec2.html)를 참조하세요. 역할을 연결할 수 있는 기타 서비스에는 [Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/dg/c-getting-started-using-spectrum.html), [AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/lambda-permissions.html), [Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_execution_IAM_role.html)가 있습니다.

IAM 이외의 자격 증명 시스템으로 인증된 사용자에게 권한을 부여할 수도 있습니다. 예를 들어 IAM 역할을 Amazon Cognito로 로그인하는 모바일 앱 사용자와 연결할 수 있습니다. 이 역할은 앱에 역할 권한 정책에 있는 권한과 함께 임시 자격 증명을 부여합니다. 그런 다음 권한 정책을 사용하여 해당 역할에 보안 암호에 대한 액세스 권한을 부여할 수 있습니다. 자세한 내용은 [Identity providers and federation(자격 증명 공급자 및 페더레이션)](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers.html)을 참조하세요.

자격 증명 기반 정책을 사용하여 다음을 수행할 수 있습니다.
+ 여러 보안 암호에 대한 자격 증명 액세스 권한을 부여합니다.
+ 새 보안 암호를 만들 수 있는 사용자와, 아직 생성되지 않은 보안 암호에 액세스할 수 있는 사용자를 제어합니다.
+ IAM 그룹에 보안 암호에 대한 액세스 권한을 부여합니다.

**Topics**
+ [예: 개별 보안 암호 값을 검색할 수 있는 권한](#auth-and-access_examples_identity_read)
+ [예: 개별 보안 암호를 읽고 설명할 수 있는 권한](#auth-and-access_examples-read-and-describe)
+ [예: 보안 암호 값 그룹을 일괄적으로 검색할 수 있는 권한](#auth-and-access_examples_batch)
+ [예: 와일드카드](#auth-and-access_examples_wildcard)
+ [예: 보안 암호 생성 권한](#auth-and-access_examples_create)
+ [예: 보안 암호를 암호화하기 위한 특정 AWS KMS 키 거부](#auth-and-access_examples_kmskey)

## 예: 개별 보안 암호 값을 검색할 수 있는 권한
<a name="auth-and-access_examples_identity_read"></a>

보안 암호 값을 검색할 수 있는 권한을 부여하기 위해 정책을 암호 또는 자격 증명에 연결할 수 있습니다. 사용할 정책 유형을 결정하는 방법에 대한 도움말은 [자격 증명 기반 정책 및 리소스 기반 정책](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_identity-vs-resource.html)을 참조하세요. 정책 연결 방법에 대한 자세한 내용은 [리소스 기반 정책](auth-and-access_resource-policies.md) 및 [ID 기반 정책](#auth-and-access_iam-policies) 섹션을 참조하세요.

이 예시는 IAM 그룹에 대한 액세스 권한을 부여하려는 경우에 유용합니다. 배치 API 직접 호출에서 보안 암호 그룹을 검색할 권한을 부여하려면 [예: 보안 암호 값 그룹을 일괄적으로 검색할 수 있는 권한](#auth-and-access_examples_batch) 섹션을 참조하세요.

**Example 고객 관리형 키를 사용하여 암호화된 보안 암호 읽기**  
고객 관리형 키를 사용하여 보안 암호를 암호화하는 경우 다음 정책을 자격 증명에 연결하여 보안 암호를 읽을 액세스 권한을 부여할 수 있습니다.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Effect": "Allow",
  "Action": "secretsmanager:GetSecretValue",
  "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
},
{
  "Effect": "Allow",
  "Action": "kms:Decrypt",
  "Resource": "arn:aws:kms:us-east-1:123456789012:key/key-id"
}
]
}
```

## 예: 개별 보안 암호를 읽고 설명할 수 있는 권한
<a name="auth-and-access_examples-read-and-describe"></a>

**Example 하나의 보안 암호를 읽고 설명**  
자격 증명에 다음 정책을 연결하여 보안 암호에 대한 액세스 권한을 부여할 수 있습니다.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
  {
    "Effect": "Allow",
    "Action": [
      "secretsmanager:GetSecretValue",
      "secretsmanager:DescribeSecret"
      ],
      "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName-AbCdEf"
    }
]
}
```

## 예: 보안 암호 값 그룹을 일괄적으로 검색할 수 있는 권한
<a name="auth-and-access_examples_batch"></a>

**Example 일괄적으로 보안 암호 그룹 읽기**  
자격 증명에 다음 정책을 연결하여 배치 API 직접 호출에서 보안 암호 그룹을 검색할 수 있는 액세스 권한을 부여할 수 있습니다. 이 정책은 배치 호출에 다른 보안 암호가 포함되어 있더라도 *SecretARN1*, *SecretARN2* 및 *SecretARN3*으로 지정한 보안 암호만 검색할 수 있도록 호출자를 제한합니다. 호출자가 배치 API 직접 호출에서 다른 보안 암호도 요청하는 경우 Secrets Manager는 이를 반환하지 않습니다. 자세한 내용은 [https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_BatchGetSecretValue.html](https://docs.aws.amazon.com/secretsmanager/latest/apireference/API_BatchGetSecretValue.html) 섹션을 참조하세요.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Effect": "Allow",
  "Action": [
    "secretsmanager:BatchGetSecretValue",
    "secretsmanager:ListSecrets"
  ],
  "Resource": "*"
},
{
  "Effect": "Allow",
  "Action": [
    "secretsmanager:GetSecretValue"
  ],
  "Resource": [
    "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName1-AbCdEf",
    "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName2-AbCdEf",
    "arn:aws:secretsmanager:us-east-1:123456789012:secret:secretName3-AbCdEf"
    ]
}
]
}
```

## 예: 와일드카드
<a name="auth-and-access_examples_wildcard"></a>

와일드카드를 사용하여 정책 요소에 값 집합을 포함할 수 있습니다.

**Example 경로의 모든 보안 암호에 액세스**  
다음 정책은 "*TestEnv/*"로 시작하는 이름의 모든 보안 암호를 검색할 수 있는 액세스 권한을 부여합니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": {
        "Effect": "Allow",
        "Action": "secretsmanager:GetSecretValue",
        "Resource": "arn:aws:secretsmanager:us-east-1:123456789012:secret:TestEnv/*"
    }
}
```

**Example 모든 보안 암호의 메타데이터에 액세스**  
다음 정책은 `DescribeSecret` 및 `List`: `ListSecrets`, `ListSecretVersionIds`로 시작하는 권한을 부여합니다.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": {
"Effect": "Allow",
"Action": [
  "secretsmanager:DescribeSecret",
  "secretsmanager:List*"
],
"Resource": "*"
}
}
```

**Example 보안 암호 이름 일치**  
다음 정책은 보안 암호에 대한 모든 Secrets Manager 권한을 해당 이름으로 부여합니다. 이 정책을 사용하려면 [ID 기반 정책](#auth-and-access_iam-policies) 섹션을 참조하세요.  
보안 암호 이름을 일치시키려면 리전, 계정 ID, 보안 암호 이름 및 와일드카드(`?`)를 조합하여 임의의 개별 문자와 일치시켜 보안 암호에 대한 ARN을 생성합니다. Secrets Manager는 보안 암호 이름에 6개의 임의 문자를 ARN의 일부로 추가하므로 이 와일드카드를 사용하여 해당 문자와 일치시킬 수 있습니다. `"another_secret_name-*"` 구문을 사용하는 경우 Secrets Manager는 6개의 임의 문자와 해당 보안 암호를 일치시킬 뿐 아니라 `"another_secret_name-<anything-here>a1b2c3"`과도 일치시킵니다.  
6개의 임의 문자를 제외한 보안 암호 ARN의 모든 부분을 예측할 수 있기 때문에 와일드카드 문자 `'??????'` 구문을 사용하면 아직 존재하지 않는 보안 암호에 안전하게 권한을 부여할 수 있습니다. 하지만 보안 암호를 삭제한 후 이름이 동일한 보안 암호를 다시 생성할 경우, 임의의 문자 6자가 변경되더라도 새 보안 암호에 대한 권한이 사용자에게 자동으로 부여됩니다.    
****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "secretsmanager:*",
            "Resource": [
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:a_specific_secret_name-a1b2c3",
                "arn:aws:secretsmanager:us-east-1:123456789012:secret:another_secret_name-??????"
            ]
        }
    ]
}
```

## 예: 보안 암호 생성 권한
<a name="auth-and-access_examples_create"></a>

사용자에게 보안 암호 생성 권한을 부여하려면 사용자가 속한 IAM 그룹에 권한 정책을 연결하는 것이 좋습니다. [IAM 사용자 그룹](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_groups.html)을 참조하세요.

**Example 보안 암호 생성**  
다음 정책은 보안 암호를 생성하고 보안 암호 목록을 볼 수 있는 권한을 부여합니다. 이 정책을 사용하려면 [ID 기반 정책](#auth-and-access_iam-policies) 섹션을 참조하세요.    
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
{
  "Effect": "Allow",
  "Action": [
    "secretsmanager:CreateSecret",
    "secretsmanager:ListSecrets"
  ],
  "Resource": "*"
}
]
}
```

## 예: 보안 암호를 암호화하기 위한 특정 AWS KMS 키 거부
<a name="auth-and-access_examples_kmskey"></a>

**중요**  
고객 관리형 키를 거부하려면 키 정책 또는 키 부여를 사용하여 액세스를 제한하는 것이 좋습니다. 자세한 내용은 **AWS Key Management Service 개발자 가이드의 [Authentication and access control for AWS KMS](https://docs.aws.amazon.com/kms/latest/developerguide/control-access.html)를 참조하세요.

**Example AWS 관리형 키 거부 `aws/secretsmanager`**  
다음 정책은 보안 암호 생성 또는 업데이트를 위한 사용을 AWS 관리형 키 `aws/secretsmanager` 거부합니다. 이 정책은 보안 암호가 반드시 고객 관리형 키로 암호화되도록 요구합니다. 이 정책에는 두 가지 문이 포함됩니다.  

1. 첫 번째 문인는 `Sid: "RequireCustomerManagedKeysOnSecrets"`를 사용하여 보안 암호를 생성하거나 업데이트하기 위한 요청을 거부합니다 AWS 관리형 키 `aws/secretsmanager`.

1. 두 번째 문인는 Secrets Manager가 기본적으로를 사용하기 때문에 KMS 키가 포함되지 않은 보안 암호 생성 요청을 `Sid: "RequireKmsKeyIdParameterOnCreate"`거부합니다 AWS 관리형 키 `aws/secretsmanager`.  
****  

```
{
"Version":"2012-10-17",		 	 	 
"Statement": [
  {
      "Sid": "RequireCustomerManagedKeysOnSecrets",
      "Effect": "Deny",
      "Action": [
          "secretsmanager:CreateSecret",
          "secretsmanager:UpdateSecret"
      ],
      "Resource": "*",
      "Condition": {
          "StringLikeIfExists": {
              "secretsmanager:KmsKeyArn": "<key_ARN_of_the_AWS_managed_key>"
          }
      }
  },
  {
      "Sid": "RequireKmsKeyIdParameterOnCreate",
      "Effect": "Deny",
      "Action": "secretsmanager:CreateSecret",
      "Resource": "*",
      "Condition": {
          "Null": {
              "secretsmanager:KmsKeyArn": "true"
          }
      }
  }
]
}
```