[IOS] AWS 자격 증명을 구성할 때 유효 시간(만료 시간)을 설정
AWS 자격 증명을 구성할 때 유효 시간(만료 시간)을 설정하려면 주로 AWS Cognito나 AWS STS (Security Token Service)를 사용합니다. 아래에서는 두 가지 방법에 대해 간단한 예시를 제시하겠습니다.
- AWS Cognito를 사용한 자격 증명 구성:
AWS Cognito는 사용자 인증 및 자격 증명 관리를 쉽게 할 수 있는 서비스입니다. Cognito에서는 임시 자격 증명을 생성하고 만료 시간을 관리할 수 있습니다.
import AWSCognitoIdentityProvider
// AWS Cognito 설정
let userPoolId = "YOUR_USER_POOL_ID"
let clientId = "YOUR_CLIENT_ID"
let identityPoolId = "YOUR_IDENTITY_POOL_ID"
let credentialsProvider = AWSCognitoCredentialsProvider(
regionType: .USEast1,
identityPoolId: identityPoolId,
identityProviderManager: nil)
let configuration = AWSServiceConfiguration(
region: .USEast1,
credentialsProvider: credentialsProvider)
AWSServiceManager.default().defaultServiceConfiguration = configuration
// 만료 시간 설정
let expirationTime = Date().addingTimeInterval(10 * 60 * 60) // 10 hours from now
// AWS Cognito를 통해 자격 증명 획득
credentialsProvider.getIdentityId().continueWith { (task) in
if let error = task.error {
print("Error: \(error)")
} else {
// 임시 자격 증명 생성 (ID Token을 통해)
let idToken = AWSIdentityManager.default().identityIdToken
credentialsProvider.logins = [AWSCognitoLoginProviderKey.cognitoIdentityId.rawValue: idToken]
credentialsProvider.getSession().continueWith { (task) in
if let error = task.error {
print("Error: \(error)")
} else {
// 만료 시간 설정
credentialsProvider.expiration = expirationTime
// 이제 임시 자격 증명이 설정되었습니다.
}
}
}
}`
- AWS STS를 사용한 자격 증명 구성:
AWS STS는 임시 보안 자격 증명을 생성하고 관리하는 서비스입니다. 아래의 예시 코드는 AWS STS를 사용하여 임시 자격 증명을 생성하고 만료 시간을 설정하는 방법을 보여줍니다.
import AWSCore
import AWSSecurityToken
// AWS STS 설정
let credentialsProvider = AWSStaticCredentialsProvider(
accessKey: "YOUR_ACCESS_KEY",
secretKey: "YOUR_SECRET_KEY")
let sts = AWSSTS(credentialsProvider: credentialsProvider, region: .USEast1)
// 만료 시간 설정
let expirationTime = Date().addingTimeInterval(10 * 60 * 60) // 10 hours from now
// 임시 자격 증명 요청
let request = AWSSTSGetSessionTokenRequest()
sts.getSessionToken(request).continueWith { (task) in
if let error = task.error {
print("Error: \(error)")
} else if let response = task.result {
// 만료 시간 설정
response.credentials?.expiration = expirationTime
// 이제 임시 자격 증명이 설정되었습니다.
}
}`
위의 코드는 단순한 예시일 뿐이며, 실제로는 오류 처리 및 보안 고려 사항을 고려하여 더 정교하게 구현해야 합니다. 사용하는 AWS 서비스 및 SDK 버전에 따라 자세한 내용은 해당 문서와 예시를 참고하시길 권장합니다.